Dr. Jung,

Thank your for your help.  That was the problem.  However, I can't 
really change the Javabeans since they are being created by XDoclet. 
Now, xdoclet 1.1.2's dataobjects conform to the JavaBeans spec - however 
1.2.0cvs valueobjects do not.  I need to use cvs' valueobjects because 
it creates getters and setters for my relationships.  Unfortunately, is 
also adds some gets that don't have sets.

Sooo, it looks like I need to write my own serializers and 
deserializers.  I see the docs at: http://xml.apache.org/axis/ , however 
my question to you is where do I put the de/serializer classes?  In the 
.wsr?

Thanks again,
David

--

Jung , Dr. Christoph wrote:
> David,
> 
> There seems to be an assymetry in the read/write methods of your Javabeans?
> The line in which the exception is thrown:
> 
> BeanDeserializer.java, line 198:
> 
>         if (propDesc.getWriteMethod().getParameterTypes().length == 1) 
> 
> propDesc is the BeanProperty-MetaData of axis must be bound, otherwise you
> would get a badElement AxisFault before. So
> I guess it is a lacking writeMethod (setWhatEver(...)) such that the
> getWriteMethod() deliver null.
> 
> I´m currently working on a more tolerant version of the BeanSerializer for
> jboss.net that also covers entity beans and
> entity-relations ...
> 
> CGJ
> 
> -----Ursprüngliche Nachricht-----
> Von: David Ward [mailto:[EMAIL PROTECTED]] 
> Gesendet: Freitag, 7. Juni 2002 08:55
> An: [EMAIL PROTECTED]
> Betreff: [JBoss-user] NPE using JBoss.net
> Wichtigkeit: Hoch
> 
> 
> 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:13
> 5)
>       [java]     at
> org.apache.axis.encoding.DeserializationContextImpl.endElement(Deserializati
> onContextImpl.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(DeserializationCon
> textImpl.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(A
> XISPersistenceManagerFactory.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(Deserializa
> tionContextImpl.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(Deserializa
> tionContextImpl.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(Deserializa
> tionContextImpl.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:1
> 39)
>       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
> ###########################################
> 
> This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
> For more information, connect to http://www.F-Secure.com/
> 
> _______________________________________________________________
> 
> 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



-- 

---------------------
David Ward
[EMAIL PROTECTED]
http://www.dotech.com


_______________________________________________________________

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