Hi All,
Using Spring 2.0m3 my simple client (shown below) fails on WLS8.1 SP5. However, regressing back to Spring 1.2.5 it works just fine.
Client
Code:public class EJBTestClient { private XmlBeanFactory factory; public EJBTestClient() { factory = new XmlBeanFactory(new FileSystemResource("applicationContext.xml")); } public static void main(String [] args) { EJBTestClient tc = new EJBTestClient(); ServiceSelection ss = (ServiceSelection)tc.factory.getBean("serviceSelectionBean"); try { System.out.println("result = " + ss.isValidCityOption("München")); }catch(Exception e) { e.printStackTrace(); } } }
applicationContext.xml
Failed output from 2.0m3Code:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"> <property name="environment"> <props> <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop> <prop key="java.naming.provider.url">t3://localhost:8820</prop> </props> </property> </bean> <bean id="serviceSelectionBean" class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean"> <property name="jndiName"><value>eSelfCare.ServiceSelectionHome</value></property> <property name="jndiTemplate"><ref local="jndiTemplate"/></property> <property name="resourceRef"><value>false</value></property> <property name="businessInterface"><value>de.viaginterkom.ca.ecrm.eselfcare.ejbserver.beans.ServiceSelection</value></property> <property name="lookupHomeOnStartup"><value>false</value></property> <property name="refreshHomeOnConnectFailure" value="true"/> </bean> </beans>
Good output from 1.2.5Code:log4j:WARN Please initialize the log4j system properly. org.springframework.remoting.RemoteLookupFailureException: Failed to locate remote EJB [eSelfCare.ServiceSelectionHome]; nested exception is javax.naming.CommunicationException: null javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.io.StreamCorruptedException] at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:83) at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:390) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:346) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:336) at javax.naming.InitialContext.lookup(InitialContext.java:347) at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:123) at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:85) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:121) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:146) at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:86) at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:104) at org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor.lookup(AbstractRemoteSlsbInvokerInterceptor.java:93) at org.springframework.ejb.access.AbstractSlsbInvokerInterceptor.getHome(AbstractSlsbInvokerInterceptor.java:144) at org.springframework.ejb.access.AbstractSlsbInvokerInterceptor.create(AbstractSlsbInvokerInterceptor.java:168) at org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor.newSessionBeanInstance(AbstractRemoteSlsbInvokerInterceptor.java:202) at org.springframework.ejb.access.SimpleRemoteSlsbInvokerInterceptor.getSessionBeanInstance(SimpleRemoteSlsbInvokerInterceptor.java:108) at org.springframework.ejb.access.SimpleRemoteSlsbInvokerInterceptor.doInvoke(SimpleRemoteSlsbInvokerInterceptor.java:74) at org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor.invoke(AbstractRemoteSlsbInvokerInterceptor.java:114) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy0.isValidCityOption(Unknown Source) at EJBTestClient.main(EJBTestClient.java:33) Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.io.StreamCorruptedException at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:284) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:244) at weblogic.jndi.internal.ServerNamingNode_812_WLStub.lookup(Unknown Source) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:343) ... 19 more Caused by: java.io.StreamCorruptedException at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1506) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:119) at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:112) at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477) at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108) at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415) at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
I have not found a similar issue here so I am assuming that not many people are currently using 2.0m3.Code:log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.xml.XmlBeanDefinitionReader). log4j:WARN Please initialize the log4j system properly. result = true
Regards
Steve


Reply With Quote
