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

Reply via email to