On 10/23/07, Huitang Li <[EMAIL PROTECTED]> wrote: > > Excellent! Thanks very much. Somehow -Eosv does not solve the problem.
what is the Axis2 version you use? this is available in Axis2 1.3. So I put the nillable="true" in the element there, and it works. > > > > > > Amila Suriarachchi wrote: > > this means your object structure do not have loaded the required fault > > elements. > > > > see you schema there should be an element named fault without > > minOccurs=0 or nillable=ture. > > So ADB gives an exception because of this. > > > > if you want to remove this use -Eosv when genrating the code. > > > > Amia. > > > > > > On 10/23/07, *Huitang Li* < [EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]>> wrote: > > > > Hi, > > > > I created a web service code based on a wsdl, and it is run in resin > > 3.1.3, and I have the soapmonitor activated. When a web service > > client > > sent a soap message to it, it threw the following exception: > > > > java.lang.RuntimeException: Can not serialize OM Element Envelope > > at > > org.apache.axiom.om.impl.llom.OMElementImpl.toString( > OMElementImpl.java:916) > > at > > org.apache.axis2.handlers.soapmonitor.SOAPMonitorHandler.invoke( > SOAPMonitorHandler.java:101) > > at org.apache.axis2.engine.Phase.invoke (Phase.java:292) > > at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java > :212) > > at > > org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:442) > > at > > org.apache.axis2.transport.http.AxisServlet.handleFault > > (AxisServlet.java:403) > > at > > org.apache.axis2.transport.http.AxisServlet.processAxisFault( > AxisServlet.java:366) > > at > > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java > :154) > > at javax.servlet.http.HttpServlet.service (HttpServlet.java:153) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) > > at > > com.caucho.server.dispatch.ServletFilterChain.doFilter( > ServletFilterChain.java:103) > > at > > com.caucho.server.security.SecurityFilterChain.doFilter > > (SecurityFilterChain.java:134) > > at > > com.caucho.server.webapp.WebAppFilterChain.doFilter( > WebAppFilterChain.java:178) > > at > > com.caucho.server.dispatch.ServletInvocation.service( > ServletInvocation.java:241) > > at > > com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java > :268) > > at > > com.caucho.server.port.TcpConnection.run(TcpConnection.java:586) > > at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690) > > at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612) > > at java.lang.Thread.run(Thread.java:595) > > Caused by: org.apache.axis2.databinding.ADBException: Property > > cannot be > > null! > > at test.Fault.serialize (Fault.java:95) > > at test.Fault$1.serialize(Fault.java:80) > > at > > org.apache.axis2.databinding.ADBDataSource.serialize( > ADBDataSource.java:82) > > at > > > org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerializeAndConsume > > (OMSourcedElementImpl.java:599) > > at > > > org.apache.axiom.soap.impl.llom.SOAPFaultDetailImpl.internalSerialize( > SOAPFaultDetailImpl.java:86) > > at > > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize( > OMElementImpl.java > > :756) > > at > > org.apache.axiom.soap.impl.llom.SOAPFaultImpl.internalSerialize( > SOAPFaultImpl.java:192) > > at > > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize( > OMElementImpl.java:756) > > at > > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize > > (OMElementImpl.java:772) > > at > > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize( > OMElementImpl.java:756) > > at > > org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize( > SOAPEnvelopeImpl.java > > :210) > > at > > org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize( > OMElementImpl.java:756) > > at > > org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java > :345) > > at > > org.apache.axiom.om.impl.llom.OMElementImpl.toString > > (OMElementImpl.java:913) > > ... 18 more > > > > This exception will not be shown when all elements in the requesting > > soap message are filled with non-empty (no-blankspace) values. > > > > I notice that the exception is thrown from the following > > axis2-generated > > code: > > > > > > public void serialize(final javax.xml.namespace.QNameparentQName, > > final org.apache.axiom.om.OMFactory factory, > > > > org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter > > xmlWriter) > > throws javax.xml.stream.XMLStreamException, > > org.apache.axis2.databinding.ADBException { > > //We can safely assume an element has only one type > associated > > with it > > if (localFault == null) { > > throw new org.apache.axis2.databinding.ADBException( > > "Property cannot be null!"); > > <======================== the line where the exception is thrown. > > } > > > > localFault.serialize(MY_QNAME, factory, xmlWriter); > > } > > > > > > My question is: In the line where the exception is thrown, why is > the > > parameter localFault null? How to make it as a non-null value? > > > > Thanks. > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: [EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > -- > > Amila Suriarachchi, > > WSO2 Inc. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Amila Suriarachchi, WSO2 Inc.