I'm so close to getting my axis client code working with JBoss.net I can taste it... however I'm getting a NullPointerException that I can't figure out.
My guess is that I have something misconfigured with namespaces or something else in my XML, but I'm not sure. I've attached all the relevant information I can below. The client-config.xml and web-service.xml files are at the bottom of the email. Please help! (Dr. Jung?) Thanks so much, David -- ENVIRONMENT: ------------ RedHat Linux 7.1, kernel 2.4.9-31, i686 Sun JDK 1.4.0_01 JBoss 3.0.0 (final w/ Jetty) ear file contents: ------------------ META-INF/MANIFEST.MF META-INF/application.xml dotech-gizzard-ejb.jar dotech-gizzard-axis.wsr wsr (in the ear) file contents: ------------------------------- META-INF/MANIFEST.MF META-INF/web-service.xml JAVA CODE: ---------- String clientConfig = "/home/david/<filepath>/client-config.xml"; String url = "http://localhost:9090/axis/services/EJBPersistenceManager"; Service service = new Service( new FileProvider(clientConfig) ); Call call = (Call)service.createCall(); call.setTargetEndpointAddress( new URL(url) ); // I'm using reflection to dynamically get the method name in an InvocationHandler QName qname = new QName( "http://net.jboss.org/gizzard/", pMethod.getName() ); call.setOperationName(qname); return call.invoke(pArgs); // error occurs here CLIENT STACK TRACE: ------------------- [java] java.lang.NullPointerException [java] at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:135) [java] at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:865) [java] at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1528) [java] at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) [java] at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) [java] at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) [java] at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) [java] at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500) [java] at org.apache.crimson.parser.Parser2.parse(Parser2.java:305) [java] at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442) [java] at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) [java] at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:201) [java] at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:428) [java] at org.apache.axis.client.Call.invoke(Call.java:1793) [java] at org.apache.axis.client.Call.invoke(Call.java:1594) [java] at org.apache.axis.client.Call.invoke(Call.java:1513) [java] at org.apache.axis.client.Call.invoke(Call.java:1093) [java] at com.dotech.gizzard.persistence.axis.AXISPersistenceManagerFactory$1.invoke(AXISPersistenceManagerFactory.java:49) [java] at $Proxy0.addUser(Unknown Source) [java] at com.dotech.gizzard.persistence.test.UserTest.addUsers(UserTest.java:68) [java] at com.dotech.gizzard.persistence.test.UserTest.main(UserTest.java:32) AXIS MONITOR: ------------- Listen Port: 9090 Target Host: localhost Target Port: 8080 ==== Request ==== POST /axis/services/EJBPersistenceManager HTTP/1.0 Content-Length: 1234 Host: localhost Content-Type: text/xml; charset=utf-8 SOAPAction: "" <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:addUser xmlns:ns1="http://net.jboss.org/gizzard/"> <arg0 href="#id0"/> </ns1:addUser> <multiRef id="id0" SOAP-ENC:root="0" xsi:type="ns2:UserData" xmlns:ns2="http://net.jboss.org/gizzard"> <lastModified xsi:nil="true"/> <email xsi:type="xsd:string">[EMAIL PROTECTED]</email> <userName xsi:type="xsd:string">david</userName> <password xsi:type="xsd:string">divad</password> <firstName xsi:type="xsd:string">David</firstName> <lastName xsi:type="xsd:string">Ward</lastName> <created xsi:nil="true"/> <key xsi:nil="true"/> <groupData xsi:nil="true"/> <persistenceLevel href="#id1"/> <primaryKey xsi:nil="true"/> </multiRef> <multiRef id="id1" SOAP-ENC:root="0" xsi:type="ns3:PersistenceLevel" xmlns:ns3="http://net.jboss.org/gizzard"> <level xsi:type="xsd:int">-1</level> </multiRef> </SOAP-ENV:Body> </SOAP-ENV:Envelope>==== Response ==== HTTP/1.1 500 Internal Server Error Date: Fri, 07 Jun 2002 06:21:32 GMT Server: Jetty/4.0.1 (Linux 2.4.9-31 i386) Servlet-Engine: Jetty/1.1 (Servlet 2.3; JSP 1.2; java 1.4.0_01) Content-Type: text/xml; charset=utf-8 Content-Length: 3373 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.userException</faultcode> <faultstring>java.lang.NullPointerException</faultstring> <detail> <ns2:stackTrace xmlns:ns2="http://xml.apache.org/axis/">java.lang.NullPointerException at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:198) at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:821) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:197) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:578) at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:367) at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:834) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:197) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:578) at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:367) at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:834) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:197) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:578) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:207) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:231) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:139) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:263) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:154) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:121) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:288) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:543) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:371) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:607) at org.mortbay.http.HttpContext.handle(HttpContext.java:1387) at org.mortbay.http.HttpContext.handle(HttpContext.java:1326) at org.mortbay.http.HttpServer.service(HttpServer.java:757) at org.jboss.jetty.Jetty.service(Jetty.java:527) at org.mortbay.http.HttpConnection.service(HttpConnection.java:742) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:915) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:757) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:151) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287) at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715) at java.lang.Thread.run(Thread.java:536) </ns2:stackTrace> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ejb-jar.xml: ------------ ... <session> ... <ejb-name>EJBPersistenceManager</ejb-name> ... <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> ... </session> ... web-service.xml: ---------------- <deployment name="EJBPersistenceManager" targetNamespace="http://net.jboss.org/gizzard" xmlns:gizzard="http://net.jboss.org/gizzard" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:jbnet="http://net.jboss.org/server" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- the below ejb-ref block is a jboss extension --> <ejb-ref> <ejb-ref-name>ejb/EJBPersistenceManager</ejb-ref-name> <ejb-link>EJBPersistenceManager</ejb-link> </ejb-ref> <service name="EJBPersistenceManager" provider="Handler"> <parameter name="handlerClass" value="org.jboss.net.axis.server.EJBProvider"/> <!-- <parameter name="beanJndiName" value="java:comp/env/ejb/EJBPersistenceManager"/> --> <parameter name="beanJndiName" value="dotech/gizzard/EJBPersistenceManager"/> <parameter name="allowedMethods" value="*"/> <requestFlow name="EJBPersistenceManagerRequest"> <handler type="java:org.jboss.net.axis.server.TransactionRequestHandler"/> </requestFlow> <responseFlow name="EJBPersistenceManagerResponse"> <handler type="java:org.jboss.net.axis.server.SerialisationResponseHandler"/> <handler type="java:org.jboss.net.axis.server.TransactionResponseHandler"/> </responseFlow> </service> <typeMapping qname="gizzard:PersistenceLevel" type="java:com.dotech.gizzard.persistence.PersistenceLevel" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <typeMapping qname="gizzard:UserData" type="java:com.dotech.gizzard.persistence.data.UserData" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </deployment> client-config.xml: ------------------ <deployment name="EJBPersistenceManager" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:gizzard="http://net.jboss.org/gizzard"> <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"> </transport> <typeMapping qname="gizzard:PersistenceLevel" type="java:com.dotech.gizzard.persistence.PersistenceLevel" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <typeMapping qname="gizzard:UserData" type="java:com.dotech.gizzard.persistence.data.UserData" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </deployment> _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user