Search code examples
javaspringejbweblogic-10.xstateless

java.io.EOFException at weblogic


Hello I'm having hard time trying to configure weblogic for stateless bean (Spring). I'm new on that field.

I'm having 2-layer application. Server (weblogic + DB + java app) and client written in swing. When calling this line:

getCtx().lookup(SomeStatelessRemoteHome.class.getName()), SomeStatelessRemoteHome.class);

I got this error:

Caused by: javax.naming.CommunicationException [Root exception is weblogic.rjvm.PeerGoneException: ; nested exception is: 
    java.io.EOFException]
    at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:74)
    at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:472)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:428)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:412)
    at javax.naming.InitialContext.lookup(Unknown Source)
    at pl.com...SomeStatelessRemoteLbkProxy.<init>(SomeStatelessRemoteLbkProxy.java:49)
    ... 46 more
Caused by: weblogic.rjvm.PeerGoneException: ; nested exception is: 
    java.io.EOFException
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:237)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
    at weblogic.jndi.internal.ServerNamingNode_1036_WLStub.lookup(Unknown Source)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:424)
    ... 49 more
Caused by: java.io.EOFException
    at weblogic.rjvm.t3.MuxableSocketT3.endOfStream(MuxableSocketT3.java:345)
    at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:827)
    at weblogic.socket.SocketMuxer.deliverEndOfStream(SocketMuxer.java:761)
    at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:958)
    at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:889)
    at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:339)
    at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
    at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

EJB is auto-deployed on server. I've run weblogic with debug properties and there is nothing in log on weblogic server. Only on client it shows this stacktrace.

After ocurring of this exception weblogic lose all connection with client.

My config.xml on weblogic is:

<?xml version='1.0' encoding='UTF-8'?>
<domain xmlns="http://xmlns.oracle.com/weblogic/domain" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/domain http://xmlns.oracle.com/weblogic/1.0/domain.xsd http://xmlns.oracle.com/weblogic/security http://xmlns.oracle.com/weblogic/1.0/security.xsd http://xmlns.oracle.com/weblogic/security/wls http://xmlns.oracle.com/weblogic/security/wls/1.0/wls.xsd http://xmlns.oracle.com/weblogic/security/extension http://xmlns.oracle.com/weblogic/1.0/security.xsd">
  <name>mydomain</name>
  <domain-version>10.3.2.0</domain-version>
  <security-configuration>
    <name>mydomain</name>
    <realm>
      <sec:authentication-provider xmlns:ext="http://xmlns.oracle.com/weblogic/security/extension" xsi:type="ext:custom-authenticatorType">
        <sec:name>CustomAuthenticator</sec:name>
        <sec:control-flag>SUFFICIENT</sec:control-flag>
        <ext:host>66.66.66.66</ext:host>
        <ext:port>389</ext:port>
        <ext:principal>some_principals_censored</ext:principal>
        <ext:results-time-limit>2000</ext:results-time-limit>
        <ext:connect-timeout>2990</ext:connect-timeout>
        <ext:connection-retry-limit>100</ext:connection-retry-limit>
        <ext:credential-encrypted>some_credentialss_censored</ext:credential-encrypted>
      </sec:authentication-provider>
      <sec:authentication-provider xsi:type="wls:default-authenticatorType"></sec:authentication-provider>
      <sec:authentication-provider xsi:type="wls:default-identity-asserterType">
        <sec:active-type>AuthenticatedUser</sec:active-type>
      </sec:authentication-provider>
      <sec:role-mapper xsi:type="wls:default-role-mapperType"></sec:role-mapper>
      <sec:authorizer xsi:type="wls:default-authorizerType"></sec:authorizer>
      <sec:adjudicator xsi:type="wls:default-adjudicatorType"></sec:adjudicator>
      <sec:credential-mapper xsi:type="wls:default-credential-mapperType"></sec:credential-mapper>
      <sec:cert-path-provider xsi:type="wls:web-logic-cert-path-providerType"></sec:cert-path-provider>
      <sec:cert-path-builder>WebLogicCertPathProvider</sec:cert-path-builder>
      <sec:user-lockout-manager></sec:user-lockout-manager>
      <sec:deploy-role-ignored>false</sec:deploy-role-ignored>
      <sec:deploy-policy-ignored>false</sec:deploy-policy-ignored>
      <sec:security-dd-model>Advanced</sec:security-dd-model>
      <sec:combined-role-mapping-enabled>false</sec:combined-role-mapping-enabled>
      <sec:name>myrealm</sec:name>
    </realm>
    <default-realm>myrealm</default-realm>
    <credential-encrypted>some_credetials</credential-encrypted>
    <web-app-files-case-insensitive>os</web-app-files-case-insensitive>
    <compatibility-connection-filters-enabled>true</compatibility-connection-filters-enabled>
    <node-manager-username>weblogic</node-manager-username>
    <node-manager-password-encrypted>encrypted_pass</node-manager-password-encrypted>
    <enforce-strict-url-pattern>false</enforce-strict-url-pattern>
  </security-configuration>
  <security>
    <name>mydomain</name>
    <realm>wl_default_realm</realm>
    <password-policy>wl_default_password_policy</password-policy>
  </security>
  <jta>
    <name>mydomain</name>
    <timeout-seconds>60000</timeout-seconds>
  </jta>
  <server>
    <name>myserver</name>
    <jms-thread-pool-size>0</jms-thread-pool-size>
    <max-message-size>80000000</max-message-size>
    <complete-message-timeout>480</complete-message-timeout>
    <ssl>
      <name>myserver</name>
      <enabled>false</enabled>
      <identity-and-trust-locations>KeyStores</identity-and-trust-locations>
    </ssl>
    <log>
      <stdout-severity>Warning</stdout-severity>
    </log>
    <execute-queue>
      <name>weblogic.kernel.Default</name>
      <thread-count>100</thread-count>
    </execute-queue>
    <messaging-bridge-thread-pool-size>100</messaging-bridge-thread-pool-size>
    <listen-port>7001</listen-port>
    <listen-address>127.0.0.1</listen-address>
    <xml-registry xsi:nil="true"></xml-registry>
    <xml-entity-cache xsi:nil="true"></xml-entity-cache>
    <extra-ejbc-options>-Xmx1g</extra-ejbc-options>
    <tunneling-enabled>false</tunneling-enabled>
    <staging-mode>stage</staging-mode>
    <server-diagnostic-config>
      <wldf-diagnostic-volume>High</wldf-diagnostic-volume>
    </server-diagnostic-config>
    <transaction-log-jdbc-store>
      <enabled>false</enabled>
    </transaction-log-jdbc-store>
    <data-source>
      <rmi-jdbc-security xsi:nil="true"></rmi-jdbc-security>
    </data-source>
  </server>
  <embedded-ldap>
    <name>mydomain</name>
    <credential-encrypted>some_credentials</credential-encrypted>
  </embedded-ldap>
  <configuration-version>10.3.2.0</configuration-version>
  <app-deployment>
    <name>_appsdir_appear</name>
    <module-type>ear</module-type>
    <source-path>autodeploy\app.ear</source-path>
    <sub-deployment>
        ....Some Ejb libs
    </sub-deployment>
    <deployment-order>100</deployment-order>
    <security-dd-model>Advanced</security-dd-model>
    <staging-mode>stage</staging-mode>
    <cache-in-app-directory>false</cache-in-app-directory>
  </app-deployment>
  <ws-reliable-delivery-policy>
    <name>RMDefaultPolicy</name>
    <jms-server>WSStoreForwardInternalJMSServermyserver</jms-server>
    <default-retry-count>10</default-retry-count>
    <default-time-to-live>60000</default-time-to-live>
  </ws-reliable-delivery-policy>
  <file-realm>
    <name>wl_default_file_realm</name>
  </file-realm>
  <realm>
    <name>wl_default_realm</name>
    <file-realm>wl_default_file_realm</file-realm>
  </realm>
  <password-policy>
    <name>wl_default_password_policy</name>
  </password-policy>
  <jms-server>
    <name>WSStoreForwardInternalJMSServermyserver</name>
    <target>myserver</target>
    <persistent-store>FileStore</persistent-store>
    <allows-persistent-downgrade>true</allows-persistent-downgrade>
    <hosting-temporary-destinations>false</hosting-temporary-destinations>
  </jms-server>
  <jms-server>
    <name>MyJMS Server</name>
    <target>myserver</target>
    <store-enabled>false</store-enabled>
    <allows-persistent-downgrade>true</allows-persistent-downgrade>
    <hosting-temporary-destinations>false</hosting-temporary-destinations>
  </jms-server>
  <web-app-container>
    <relogin-enabled>true</relogin-enabled>
    <allow-all-roles>true</allow-all-roles>
    <filter-dispatched-requests-enabled>true</filter-dispatched-requests-enabled>
    <rtexprvalue-jsp-param-name>true</rtexprvalue-jsp-param-name>
    <jsp-compiler-backwards-compatible>true</jsp-compiler-backwards-compatible>
  </web-app-container>
  <startup-class>
    <name>StartupSerwerCustom</name>
    <target>myserver</target>
    <deployment-order>1</deployment-order>
    <class-name>pl.com...</class-name>
    <load-before-app-deployments>true</load-before-app-deployments>
  </startup-class>
  <startup-class>
    ...other startupclasses
  </startup-class>
  <file-store>
    <name>FileStore</name>
    <directory>rmfilestore</directory>
    <synchronous-write-policy>Direct-Write</synchronous-write-policy>
    <target>myserver</target>
  </file-store>
  <jms-interop-module>
    <name>interop-jms</name>
    <sub-deployment>
      <name>CustomConnectionFactory</name>
      <target>myserver</target>
    </sub-deployment>
    <sub-deployment>
      <name>WSStoreForwardInternalJMSServermyserver</name>
      <target>WSStoreForwardInternalJMSServermyserver</target>
    </sub-deployment>
    <sub-deployment>
      <name>MyJMS Server</name>
      <target>MyJMS Server</target>
    </sub-deployment>
    <descriptor-file-name>jms/interop-jms.xml</descriptor-file-name>
  </jms-interop-module>
  <admin-server-name>myserver</admin-server-name>
  <jdbc-system-resource>
    <name>DS_Server</name>
    <target>myserver</target>
    <descriptor-file-name>jdbc/DS_Server-jdbc.xml</descriptor-file-name>
  </jdbc-system-resource>
</domain>

I've censored it a little :).

I would appreciate for some help with it.


Solution

  • FIXED:

    I've added debug options on Weblogic:

    -Dweblogic.kernel.debug=true 
    -Dweblogic.debug.DebugConnection=true 
    -Dweblogic.StdoutDebugEnabled=true 
    -Dweblogic.log.LogSeverity=Debug 
    -Dweblogic.log.LoggerSeverity=Debug
    

    One of jar file had wrong path. So it thrown "ClassNotFoundException". Debuging allowed me to find it... Simple mistakes are most annoying ones ;).