I'm starting to pull what little hair is left out with this one.  If anyone 
has a spare moment and can look at this, I would greatly appreciaty it!

I'm creating a web service to process a SOAP message to Register New Users.  
The SOAP message is a document that will be processed via Castor code.  My 
WSDL appears to be correct and I've followed the example over at 
www.ibm.com...

I'm getting the following exception:

org.apache.axis.ConfigurationException: 
org.apache.axis.deployment.wsdd.WSDDException: javax.xml.rpc.JAXRPCException: 
Null serializer factory specified.
javax.xml.rpc.JAXRPCException: Null serializer factory specified.
        at 
org.apache.axis.encoding.TypeMappingImpl.register(TypeMappingImpl.java:220)
        at 
org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping(WSDDService.java:546)
<snip all the standard stuff...>

Attempting to debug the source of this, I pulled the CVS tree on monday and 
added some diagnostics to the code.  My (partial) trace of the code shows the 
following: (please note, I loaded Tomcat with -verbose:class in order to see 
class loads as well...  My DEBUG messages start with ###)

[Loaded javax.wsdl.OperationType]
[Loaded org.apache.axis.description.ParameterDesc]
[Loaded org.apache.axis.deployment.wsdd.WSDDParameter]
### Serializer name is 
org.apache.axis.encoding.ser.castor.CastorSerializerFactory at 
WSDDService.java line 527.
### DeSerializer name is 
org.apache.axis.encoding.ser.castor.CastorDeserializerFactory at 
WSDDService.java line 527.
### Attempting to create the Serializer factory at WSDDService.java line 529.
### Inside ClassUtils.forName( string ).
### Calling 
loadClass(org.apache.axis.encoding.ser.castor.CastorSerializerFactory)
###Located ClassLoader is 'null' at ClassUtils.java line 168.
### Inside ClassNotFoundException of ClassUtils.loadClass(String) loading 
org.apache.axis.encoding.ser.castor.CastorSerializerFactory at 
ClassUtils.java line 170.
[Loaded org.apache.axis.encoding.ser.castor.CastorSerializerFactory]
### Inside ClassUtils.forName( string ).
### Calling 
loadClass(com.sequoiallc.services.RegisterUser.MortgageCompanyType)
###Located ClassLoader is 'null' at ClassUtils.java line 168.
### Inside ClassNotFoundException of ClassUtils.loadClass(String) loading 
com.sequoiallc.services.RegisterUser.MortgageCompanyType at ClassUtils.java 
line 170.
[Loaded com.sequoiallc.services.RegisterUser.MortgageCompanyType]
[Loaded org.apache.axis.encoding.ser.castor.CastorSerializer]
### Attempting to create the Deserializer factory at WSDDService.java line 
536.
### Inside ClassUtils.forName( string ).
### Calling 
loadClass(org.apache.axis.encoding.ser.castor.CastorDeserializerFactory)
###Located ClassLoader is 'null' at ClassUtils.java line 168.
### Inside ClassNotFoundException of ClassUtils.loadClass(String) loading 
org.apache.axis.encoding.ser.castor.CastorDeserializerFactory at 
ClassUtils.java line 170.
[Loaded org.apache.axis.encoding.ser.castor.CastorDeserializerFactory]
### Inside ClassUtils.forName( string ).
### Calling 
loadClass(com.sequoiallc.services.RegisterUser.MortgageCompanyType)
###Located ClassLoader is 'null' at ClassUtils.java line 168.
### Inside ClassNotFoundException of ClassUtils.loadClass(String) loading 
com.sequoiallc.services.RegisterUser.MortgageCompanyType at ClassUtils.java 
line 170.
[Loaded org.apache.axis.encoding.ser.castor.CastorDeserializer]
### SerializerFactory create returned null at WSDDService.java line 540.
### DeserializerFactory create returned null at WSDDService.java line 540.
### Inside ClassUtils.forName( string ).
### Calling 
loadClass(com.sequoiallc.services.RegisterUser.MortgageCompanyType)
###Located ClassLoader is 'null' at ClassUtils.java line 168.
### Inside ClassNotFoundException of ClassUtils.loadClass(String) loading 
com.sequoiallc.services.RegisterUser.MortgageCompanyType at ClassUtils.java 
line 170.
[Loaded org.apache.log4j.spi.ThrowableInformation]
[Loaded org.apache.log4j.spi.VectorWriter]
[Loaded org.apache.log4j.spi.NullWriter]

Notice the fifth "[Loaded" statement.  It's loading my MortgageCompanyType 
class.  But Axis 1.2Beta3 keeps calling for the same class until finally I 
get a NULL Serializer Factory error.

At this point, I'm at a complete loss as to *why* Tomcat loads my class but 
Axis appears to either insist that the class wasn't loaded, and reloads it, 
or is loading it multiple times.

I've attached my .wsdl and the system generated deploy.wsdd

Thanks much for your time!

Bob
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Robert Bateman (Sequoia Group LLC) -->
<definitions name="RegisterUser" 
		    targetNamespace="http://www.sequoiallc.net/test_xml/WSDL/v1_0";
		    xmlns="http://schemas.xmlsoap.org/wsdl/"; 
		    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
		    xmlns:xsd="http://www.w3.org/2001/XMLSchema";
		    xmlns:tns="http://www.sequoiallc.net/test_xml/WSDL/v1_0"; 
		    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
		    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
		    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
		    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
		    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"; 
		    xmlns:types="http://www.sequoiallc.net/test_xml/Schemas/v1_0";>

	<!-- Type Definitions -->
	<import namespace="http://www.sequoiallc.net/test_xml/Schemas/v1_0"; 
		   location="http://www.sequoiallc.net/test_xml/Schemas/v1_0/SGRegister.xsd"/>

	<!-- Message Definitions -->
	<!-- Request message -->
	<message name="RegisterUserRequest">
		<part name="parameters" element="types:NewUser"/>
	</message>

	<!-- Port Type definitions -->
	<portType name="RegisterUserPortType">
		<operation name="registerWebUser">
			<input message="tns:RegisterUserRequest"/>
		</operation>
	</portType>

	<!-- Binding definitions -->
	<binding name="RegisterUserSOAPBinding"
		       type="tns:RegisterUserPortType">
		<soap:binding style="document"
					transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="registerWebUser">
			<soap:operation style="document" soapAction="registerWebUser"/>
			<input>
				<soap:body use="literal"/>
			</input>
		</operation>
	</binding>

	<!-- Service definitions -->
	<service name="RegisterUserService">
		<port name="RegisterUserSOAPPort" binding="tns:RegisterUserSOAPBinding">
			<soap:address location="http://www.sequoiallc.com:8080/home/axis/services/RegisterUserSOAPPort"/>
		</port>
	</service>

</definitions>

Reply via email to