I have managed to get a version working, but I ahd to create a wrapper that calls the the ejb and converts the object into a String[] if I use the BeanSerializer to try and send the object itself I get the unable to set 'companyCode' error. The companyCode is null how do you get the BeanSerializer to handle nulls. I created a wsdl file but am unsure if its being used in any way how do you bring the wsdl files into effect or even know if they are being used????????????
Thanks for your help Tim -----Original Message----- From: Fred Meredith [mailto:[EMAIL PROTECTED]] Sent: 20 September 2002 00:51 To: [EMAIL PROTECTED] Subject: Re: websphere 4.0 SOAPException Please Help! You also might want to check out how you're packaging SOAP in your EAR. WAS 4 has soap.jar already within it's lib directory, and if you are also including it in your WEB-INF/lib dir, sometimes WAS gets a little cranky about that and the classloader violations fly. Sometimes all it takes is a full stop and start of the application server you have your EAR deployed under. Hope this helps, ----- Original Message ----- From: "Scott Nichol" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, September 19, 2002 10:00 AM Subject: Re: websphere 4.0 SOAPException Please Help! > I think I can help with TcpTunnelGui, but the latest error you are seeing is > not something I think I can help with. > > TcpTunnelGui will listen on a new port, and you must change your client to > connect to that port. So, if the client was calling > http://localhost/ASTWebService/servlet/rpcrouter, you run > > TcpTunnelGui 9080 localhost 80 > > and change the client to > http://localhost:9080/ASTWebService/servlet/rpcrouter. In other words, the > client now connects to TcpTunnelGui, while TcpTunnelGui connects to the Web > server (at localhost:80). > > Scott Nichol > > ----- Original Message ----- > From: "O'Neill, Timothy(LIT)" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, September 19, 2002 5:02 AM > Subject: RE: websphere 4.0 SOAPException Please Help! > > > > Hi Scott, > > > > I have tried the tcptunnelgui but I'm not seeing anything at all? > > > > Heres the url: URL url = new URL > > ("http://localhost:9080/ASTWebService/servlet/rpcrouter"); > > > > I have the following params to tcptunnelgui 80 localhost 9080, is this > > right? > > > > This is an ejb that I'm trying to expose as a web service. > > > > I created a small class that calls the ejb and only returns a string from > > the complex type that I really want and have exposed it as a soap web > > service but I'm now getting the following error from it: > > > > Fault Code = SOAP-ENV:Server > > Fault String = Exception from service object: Class > > com/libertyit/ast/ASTSessionFacade violates loader constraints > > java.lang.LinkageError: Class com/libertyit/ast/ASTSessionFacade violates > > loader constraints > > at java.lang.ClassLoader.defineClass0(Native Method) > > at java.lang.ClassLoader.defineClass(ClassLoader.java(Compiled > > Code)) > > at > > > com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.jav > > a(Compiled Code)) > > at > > > com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.jav > > a(Compiled Code)) > > at > > > com.ibm.ws.classloader.ClassLoaderGroup.findClass(ClassLoaderGroup.java(Comp > > iled Code)) > > at > > > com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.jav > > a(Compiled Code)) > > at > > > com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.jav > > a(Compiled Code)) > > at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled > Code)) > > at > > > com.libertyit.ast.ASTWSWrapper.getPolicyExpirationDate(ASTWSWrapper.java:43) > > at java.lang.reflect.Method.invoke(Native Method) > > at org.apache.soap.server.RPCRouter.invoke(RPCRouter.java:146) > > at > > org.apache.soap.providers.RPCJavaProvider.invoke(RPCJavaProvider.java:129) > > at > > > org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.java:28 > > 7) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > > at > > > com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager > > .java:827) > > at > > > com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycl > > eServlet.java:159) > > at > > > com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServle > > t.java:286) > > at > > > com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycle > > Servlet.java:106) > > at > > > com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:47 > > 2) > > at > > > com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletMan > > ager.java:1012) > > at > > > com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManag > > er.java:913) > > at > > > com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(W > > ebAppRequestDispatcher.java:499) > > at > > > com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequest > > Dispatcher.java:278) > > at > > > com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestD > > ispatcher.java:105) > > at > > com.ibm.servlet.engine.srt.WebAppInvoker.doForward(WebAppInvoker.java:67) > > at > > > com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker. > > java:123) > > at > > > com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedIn > > vocation.java:67) > > at > > > com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequ > > estProcessor.java:122) > > at > > > com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener > > .java:315) > > at > > > com.ibm.servlet.engine.http11.HttpConnection.handleRequest(HttpConnection.ja > > va:60) > > at > > > com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:313) > > at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:242) > > at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122) > > > > Heres the code: > > > > package com.libertyit.ast; > > /* > > * ASTWSWrapper.java > > * > > * Created on 18 September 2002, 09:29 > > */ > > import javax.naming.InitialContext; > > import javax.naming.Context; > > import javax.naming.NamingException; > > import java.rmi.RemoteException; > > import com.libertyit.ast.entity.Policy; > > > > /** > > * > > * @author n0099385 > > */ > > public class ASTWSWrapper { > > > > /** Creates a new instance of ASTWSWrapper */ > > public ASTWSWrapper() > > { > > } > > > > public String getPolicyExpirationDate(String aPolicyNumber) throws > > Exception { > > > > // get the JNDI initial context > > System.err.println("Getting J2EE initial context"); > > java.util.Properties jndiProperties = new java.util.Properties(); > > > > > jndiProperties.put("java.naming.factory.initial","com.ibm.websphere.naming.W > > snInitialContextFactory"); > > > > jndiProperties.put("java.naming.provider.url","iiop://localhost:900/"); > > Context jndiContext = new > > InitialContext(jndiProperties);//jndiProperties); > > // lookup the EJB home > > System.err.println("Looking up EJB Home"); > > Object homeRef = > > jndiContext.lookup("com/libertyit/ast/ASTSessionFacade"); > > ASTSessionFacadeHome home = > > (ASTSessionFacadeHome)javax.rmi.PortableRemoteObject.narrow( > > homeRef, ASTSessionFacadeHome.class); > > // create the EJB instance > > System.err.println("Creating EJB"); > > ASTSessionFacade ejb = home.create(); > > // call the getQuote method > > System.err.println("Calling getPolicyDetails"); > > Policy policy = ejb.getPolicyDetails(aPolicyNumber); > > > > System.err.println(policy.getExpirationDate()); > > String expirationDate = policy.getExpirationDate(); > > // remove the EJB > > System.err.println("Removing EJB"); > > ejb.remove(); > > return expirationDate; > > } > > > > } > > > > Is this a circular reference, I added the home and remote interface to the > > jar containing this class and created a dummy web module for this one then > > ran the soapearenabler on it. Whats going wrong here? > > > > Thanks for your help > > > > Tim > > > > -----Original Message----- > > From: Scott Nichol [mailto:[EMAIL PROTECTED]] > > Sent: 18 September 2002 14:33 > > To: [EMAIL PROTECTED] > > Subject: Re: websphere 4.0 SOAPException Please Help! > > > > > > Unfortunately, it's hard to help with the WAS implementation, since you > > cannot just plug in a new build that has more specific messages. Have you > > used a tool like TcpTunnelGui to capture the SOAP envelope from the call? > I > > am wondering exactly what is being de-serialized when this error occurs. > > > > Scott Nichol > > > > ----- Original Message ----- > > From: "O'Neill, Timothy(LIT)" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Wednesday, September 18, 2002 6:02 AM > > Subject: websphere 4.0 SOAPException Please Help! > > > > > > > Hi All, > > > > > > I have deployed an ear file using websphere and am getting the following > > > SOAPException: > > > > > > [SOAPException: faultCode=SOAP-ENV:Client; msg=Unable to set > 'companyCode' > > > property: null.; targetException=java.lang.IllegalArgumentException: > > Unable > > > to set 'companyCode' property: null.] > > > at org.apache.soap.rpc.Call.invoke(Call.java:258) > > > at > > > > > > com.libertyit.ast.ASTSessionFacadeWebService.main(ASTSessionFacadeWebService > > > .java:70) > > > Exception in thread "main" > > > > > > companyCode is an attribute within a Bean that is the return of the > called > > > method. > > > > > > I have created 3 wsdl files as described in the Implementing Web > Services > > > with IBM Websphere 4.0 tutorial along with a SOAP deployment descriptor > > > heres the descriptor: > > > > > > <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" > > > id="urn:ASTWebService"> > > > <isd:provider > > type="com.ibm.soap.providers.WASStatelessEJBProvider" > > > scope="Application" methods="getPolicyDetails"> > > > <isd:option key="JNDIName" > > > value="com/libertyit/ast/ASTSessionFacade"/> > > > <isd:option key="FullHomeInterfaceName" > > > value="com.libertyit.ast.ASTSessionFacadeHome"/> > > > <isd:option key="ContextProviderURL" > > > value="iiop://localhost:900"/> > > > <isd:option key="FullContextFactoryName" > > > value="com.ibm.websphere.naming.WsnInitialContextFactory"/> > > > </isd:provider> > > > > > > > > > <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListene > > > r> > > > <isd:mappings> > > > <isd:map > > > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > > > xmlns:x="urn:ASTWebService" qname="x:Policy" > > > javaType="com.libertyit.ast.entity.Policy" > > > > > > java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer" > > > > > > xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/> > > > </isd:mappings> > > > </isd:service> > > > > > > Hope this is enough info to go on! Let me know if you need anything > > further. > > > > > > Thanks in advance for your help. > > > > > > Tim > > > > > > Tim O'Neill > > > > > > Experienced Software Developer > > > * Liberty Information Technology > > > Clarendon House > > > 9-21 Adelaide Street > > > Belfast > > > Northern Ireland > > > BT2 8DJ > > > * +44 (0) 2890 445532 > > > ____________________________________ > > > ** [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > > > > > > **************************************************************************** > > > ********* > > > > > > Disclaimer: The contents of this e-mail and attached files in no way > > reflect > > > any policies of Liberty Information Technology Ltd > > > > > > > > > **************************************************************************** > > > ********* > > > > > > > > > > > > > > > > > > -- > > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > > > -- > > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > > > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
