Apparently I don't have the serializer configured and/or implemented properly. I get
the following "No serializer found" error when I try to call the method that returns a
jdom. Does anyone know where I can get more information about writing custom
serializers for axis?
AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (500)Internal Server Error
faultActor:
faultNode:
faultDetail:
{}string: return code: 500
<html><head><title>Apache Tomcat/5.0.19 - Error
report</title><style><!--H1
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
H2
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
H3
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P
{font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
{color : black;}A.name {color : black;}HR {color : #525D76;}--></style>
</head><body><h1>HTTP Status 500 - </h1><HR
size="1" noshade><p><b>type</b> Exception
report</p><p><b>message</b>
<u></u></p><p><b>description</b> <u>The
server encountered an internal error () that prevented it from fulfilling this
request.</u></p><p><b>exception</b>
<pre>java.io.IOException: No serializer found for class org.jdom.Element in
registry [EMAIL PROTECTED]
org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:272)
org.apache.axis.SOAPPart.getAsString(SOAPPart.java:483)
org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:375)
org.apache.axis.Message.getContentType(Message.java:399)
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:887)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
</pre></p><p><b>note</b> <u>The full stack trace
of the root cause is available in the Tomcat logs.</u></p><HR
size="1" noshade><h3>Apache
Tomcat/5.0.19</h3></body></html>
(500)Internal Server Error
at
org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:630)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:128)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)----------------------
WITHOUT STUBS --------------------
at org.apache.axis.client.Call.invokeEngine(Call.java:2564)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at soapapi.LeinSoapBindingStub.qry(LeinSoapBindingStub.java:138)
at com.armada.soapenabled.LeinClient.doitwithstubs(LeinClient.java:60)
at com.armada.soapenabled.LeinClient.main(LeinClient.java:44)
-----Original Message-----
From: Matt Valerio
Sent: Wednesday, September 29, 2004 10:26 AM
To: Axis-User (E-mail)
Subject: custom serializer problems
I'm trying to write a custom serializer for the jdom Element (org.jdom.Element). I've
written the serializer,deserializer,factories and added the type mapping to the wsdd
file. The service deploys and updates the server-config with the typeMapping Element
but when javaToWsdl tries to generate the wsdl I having some problems. Specifically
I'm getting the following message;
- The class org.jdom.Element does not contain a default constructor, which is
a requirement for a bean class. The class cannot be converted into an xml schema
type. An xml schema anyType will be used to define this class in the wsdl file.
The typeMapping node in the wsdd file is
<typeMapping qname="myjdomNS:LeinResponse"
xmlns:myjdomNS="http://jdom.soapenabled.armada.com"
languageSpecificType="java:org.jdom.Element"
serializer="com.armada.soapenabled.JdomElementSerializerFactory"
deserializer="com.armada.soapenabled.JdomElementDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
And once this is deployed the typeMapping node in the server-config.wsdd file is
<typeMapping deserializer="com.armada.soapenabled.JdomElementDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns1:LeinResponse"
serializer="com.armada.soapenabled.JdomElementSerializerFactory"
type="java:org.jdom.Element"
xmlns:ns1="http://soapenabled.armada.com"/>
The is not much documentation on creating a custom serializer but I think I've got it.
I believe the problem may lie in the javaToWSDL code but I'm not sure. My plan was
to let the WSDL get generated and then tweak as needed but that may not be possible.
Anyone have any thoughts?