You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Ananth T. Sarathy" <an...@gmail.com> on 2005/01/31 20:52:54 UTC

Castor Based objects giving Errors

I am having a problem with a webservice using Castor objects.

I used the attached xsd to create the objects using castor. When I try
to use client code to get my products I get this axis fault (client
side)

AxisFault
 faultCode: {http://xml.apache.org/axis/}Client
 faultSubcode: 
 faultString: No such operation 'searchParameters'
 faultActor: 
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}hostname:FED0013160L193

No such operation 'searchParameters'
	at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
	at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
	at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
	at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
	at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:226)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
	at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
	at org.apache.axis.client.Call.invoke(Call.java:2702)
	at org.apache.axis.client.Call.invoke(Call.java:2378)
	at org.apache.axis.client.Call.invoke(Call.java:2301)
	at org.apache.axis.client.Call.invoke(Call.java:1758)
	at mil.dia.pko.ws.impl.CKOSoapBindingStub.retrieveProducts(CKOSoapBindingStub.java:205)
	at mil.dia.pko.ws.impl.tester.main(tester.java:69)
 

When  I marshal the SearchParameter object and make my own soap call I
get this error on the server

Jan 31 2005 14:35:26,745 - ERROR org.apache.axis.encoding.DeserializerImpl
 - Unable to marshall between XML and Castor Objects :
unable to find FieldDescriptor for 'searchParameters' in ClassDescriptor of Sear
chParameters
unable to find FieldDescriptor for 'searchParameters' in ClassDescriptor of Sear
chParameters
        at org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.
java:1853)
        at org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.
java:1399)
        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:245)
        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:182)
        at org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventP
roducer.java:333)
        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:247)
        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
java:182)
        at org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.ja
va:110)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:585)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:699)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:807)
        at org.apache.axis.encoding.ser.castor.CastorDeserializer.onEndElement(C
astorDeserializer.java:62)
        at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl
.java:502)
        at org.apache.axis.encoding.DeserializationContext.endElement(Deserializ
ationContext.java:1083)
        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:171)
        at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:1140)
        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:238)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:386)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
.java:148)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
319)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450
)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:65
3)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:301)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:971)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:402)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:305)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6350)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:317)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
118)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3635)
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2585)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

I been trying to figure this out for a while and it's driving me nuts.


-- 
Ananth T Sarathy

Re: Castor Based objects giving Errors

Posted by TMG <tm...@nc.rr.com>.
Ananth,

The schema should be imported with "schemaLocation" not "location".

Tom Gordon

Ananth T. Sarathy wrote:

>I tried that, but I keep getting errors. Is there something I am doing
>wrong with these? The WSDL2Java is giving me an error that SearchText
>isrefrenced  not defined but it is defined in the xsd
>
>Any help is appreciated
>
>
>On Tue, 01 Feb 2005 14:52:59 +0900, Bill Keese
><bi...@tech.beacon-it.co.jp> wrote:
>  
>
>>>Do you know of any ways to create wsdls using the castor objects?
>>>
>>>
>>>      
>>>
>>One thing you can do is to import your XSD into your WSDL file.
>>See http://www-106.ibm.com/developerworks/webservices/library/ws-castor/
>>
>>Bill
>>
>>    
>>
>
>
>  
>
>------------------------------------------------------------------------
>
><xsd:schema elementFormDefault="qualified" 
>targetNamespace="http://xml.ws.pko.dia.mil"
> xmlns="http://xml.ws.pko.dia.mil" 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>
>	<xsd:element name="DaysWithin">
>		<xsd:simpleType>
>			<xsd:restriction base="xsd:string">
>				<xsd:enumeration value="One Day"/>
>				<xsd:enumeration value="Three Days"/>
>				<xsd:enumeration value="One Week"/>
>				<xsd:enumeration value="Two Weeks"/>
>				<xsd:enumeration value="Thirty Days"/>
>				<xsd:enumeration value="All"/>
>			</xsd:restriction>
>		</xsd:simpleType>
>	</xsd:element>
>	
>	<xsd:element name="SortBy">
>		<xsd:simpleType>
>			<xsd:restriction base="xsd:string">
>				<xsd:enumeration value="OrganizationSort"/>
>				<xsd:enumeration value="PublicationDate"/>
>				<xsd:enumeration value="TitleSort"/>
>			</xsd:restriction>
>		</xsd:simpleType>
>	</xsd:element>
>	
>	<xsd:element name="OrderBy">
>		<xsd:simpleType>
>			<xsd:restriction base="xsd:string">
>				<xsd:enumeration value="ORG_ID"/>
>				<xsd:enumeration value="PUBLICATION_DATE"/>
>				<xsd:enumeration value="TITLE"/>
>			</xsd:restriction>
>		</xsd:simpleType>
>	</xsd:element>
>	
>	<xsd:element name="CountryTrigraph">
>		<xsd:simpleType>
>			<xsd:restriction base="xsd:string">
>				<xsd:maxLength value="3"/>
>				<xsd:length value="3"/>
>				<xsd:minLength value="3"/>
>				<xsd:whiteSpace value="collapse"/>
>				<xsd:pattern value="[A-Z][A-Z][A-Z]"/>
>			</xsd:restriction>
>		</xsd:simpleType>
>	</xsd:element>
>	
> 
>	<xsd:complexType name="SearchText">
>		<xsd:sequence>
>			<xsd:element maxOccurs="1" minOccurs="1" name="text" type="xsd:string"/>
>			<xsd:element maxOccurs="1" minOccurs="1" name="numberOfProducts" type="xsd:int"/>
>			<xsd:element maxOccurs="0" minOccurs="1" ref="SortBy"/>
>		</xsd:sequence>
>	</xsd:complexType>
>	
>	<xsd:complexType name="SearchParameters">
>		<xsd:sequence>
>			<xsd:element maxOccurs="1" minOccurs="0" ref="CountryTrigraph"/>
>			<xsd:element maxOccurs="1" minOccurs="0" name="crisis" type="xsd:string"/>
>			<xsd:element maxOccurs="1" minOccurs="1" name="numberOfProducts" type="xsd:int"/>
>			<xsd:element maxOccurs="1" minOccurs="0" ref="OrderBy"/>
>			<xsd:element maxOccurs="1" minOccurs="0" name="topicID" type="xsd:string"/>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="DaysWithin"/>
>		</xsd:sequence>
>	</xsd:complexType>
>	
>	<xsd:element name="ProductSummary">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element name="classification" type="xsd:string"/>
>				<xsd:element name="organization" type="xsd:string"/>
>				<xsd:element name="publicationDate" type="xsd:date"/>
>				<xsd:element name="summary" type="xsd:string"/>
>				<xsd:element name="title" type="xsd:string"/>
>				<xsd:element name="url" type="xsd:string"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="ProductSummaries">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element maxOccurs="1" minOccurs="0" name="coreKnowledge" type="xsd:string"/>
>				<xsd:element maxOccurs="100" minOccurs="0" ref="ProductSummary"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="Topic">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element name="dta" nillable="true" type="xsd:string"/>
>				<xsd:element name="id" type="xsd:long"/>
>				<xsd:element name="name" nillable="true" type="xsd:string"/>
>				<xsd:element name="shortName" nillable="true" type="xsd:string"/>
>				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="DefenseIssues">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="DefenseTopicAreas">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:complexType name="Taxonomy">
>		<xsd:sequence>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="DefenseTopicAreas"/>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="DefenseIssues"/>
>		</xsd:sequence>
>	
>	</xsd:complexType>
>		
>		
>	<xsd:element name="retrieveProducts">
>		<xsd:complexType>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="SearchParameters"/>
>		</xsd:complexType>
>	</xsd:element>
>		
>		
>	<xsd:element name="retrieveProductsResponse">
>		<xsd:complexType>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="ProductSummaries"/>
>		</xsd:complexType>
>	</xsd:element>
>		
>	<xsd:element name="retrieveTextSearchProducts">
>		<xsd:complexType>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="SearchText"/>
>		</xsd:complexType>
>	</xsd:element>
>		
>		
>	<xsd:element name="retrieveTextSearchProductsResponse">
>		<xsd:complexType>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="ProductSummaries"/>
>		</xsd:complexType>
>	</xsd:element>
>		
>		
>	<xsd:element name="retrieveTaxonomy"></xsd:element>
>		
>		
>	<xsd:element name="retrieveTaxonomyResponse">
>		<xsd:complexType>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="Taxonomy"/>
>		</xsd:complexType>
>	</xsd:element>
>	
>	
></xsd:schema
>
>>------------------------------------------------------------------------
>>
>><?xml version="1.0" encoding="UTF-8"?>
>><definitions targetNamespace="http://xml.ws.pko.dia.mil" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:tns="http://xml.ws.pko.dia.mil" xmlns:types="http://xml.ws.pko.dia.mil" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>	<types>
>>		<xsd:schema elementFormDefault="qualified" targetNamespace="http://xml.ws.pko.dia.mil" xmlns="http://xml.ws.pko.dia.mil" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>			<import location="cko.xsd" namespace="http://xml.ws.pko.dia.mil"/>
>>		</xsd:schema>
>>	</types>
>>	<message name="retrieveTaxonomyRequest">
>>	</message>
>>	
>>	<message name="retrieveTaxonomyResponse">
>>		<part element="types:Taxonomy" name="parameters"/>
>>	</message>
>>	
>>	<message name="retrieveTextSearchProductsRequest">
>>		<part element="types:SearchText" name="parameters"/>
>>	</message>
>>	
>>	<message name="retrieveTextSearchProductsResponse">
>>		<part element="types:ProductSummaries" name="parameters"/>
>>	</message>
>>	
>>		
>>	<message name="retrieveProductsResponse">
>>		<part element="types:ProductSummaries" name="parameters"/>
>>	</message>
>>	
>>	<message name="retrieveProductsRequest">
>>		<part element="types:SearchParameters" name="parameters"/>
>>	</message>
>>	
>>	<portType name="CKO">
>>		<operation name="retrieveProducts">
>>			<input message="tns:retrieveProductsRequest"/>
>>			<output message="tns:retrieveProductsResponse"/>
>>		</operation>
>>		<operation name="retrieveTextSearchProducts">
>>			<input message="tns:retrieveTextSearchProductsRequest" />
>>			<output message="tns:retrieveTextSearchProductsResponse"/>
>>		</operation>
>>		<operation name="retrieveTaxonomy">
>>			<input message="tns:retrieveTaxonomyRequest"/>
>>			<output message="tns:retrieveTaxonomyResponse"/>
>>		</operation>
>>	</portType>
>>	
>>	<binding name="CKOSoapBinding" type="tns:CKO">
>>		<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>>		<operation name="retrieveProducts">
>>			<wsdlsoap:operation soapAction="retrieveProducts" style="document"/>
>>			<input>
>>				<wsdlsoap:body use="literal"/>
>>			</input>
>>			<output>
>>				<wsdlsoap:body use="literal"/>
>>			</output>
>>		</operation>
>>		
>>		<operation name="retrieveTextSearchProducts">
>>			<wsdlsoap:operation  style="document"  soapAction="retrieveTextSearchProducts"/>
>>			<input>
>>				<wsdlsoap:body use="literal"/>
>>			</input>
>>			<output >
>>				<wsdlsoap:body use="literal"/>
>>			</output>
>>		</operation>
>>	
>>		
>>		<operation name="retrieveTaxonomy">
>>			<wsdlsoap:operation soapAction="retrieveTaxonomy" style="document"/>
>>			<input>
>>				<wsdlsoap:body use="literal"/>
>>			</input>
>>			<output>
>>				<wsdlsoap:body use="literal"/>
>>			</output>
>>		</operation>
>>	</binding>
>>	<service name="CKOService">
>>		<port binding="tns:CKOSoapBinding" name="CKO">
>>			<wsdlsoap:address location="http://localhost/services/"/>
>>		</port>
>>	</service>
>></definitions
>>


Re: Castor Based objects giving Errors

Posted by "Ananth T. Sarathy" <an...@gmail.com>.
I tried that, but I keep getting errors. Is there something I am doing
wrong with these? The WSDL2Java is giving me an error that SearchText
isrefrenced  not defined but it is defined in the xsd

Any help is appreciated


On Tue, 01 Feb 2005 14:52:59 +0900, Bill Keese
<bi...@tech.beacon-it.co.jp> wrote:
> 
> >Do you know of any ways to create wsdls using the castor objects?
> >
> >
> One thing you can do is to import your XSD into your WSDL file.
> See http://www-106.ibm.com/developerworks/webservices/library/ws-castor/
> 
> Bill
> 


-- 
Ananth T Sarathy

Re: Castor Based objects giving Errors

Posted by Bill Keese <bi...@tech.beacon-it.co.jp>.
>Do you know of any ways to create wsdls using the castor objects?
>  
>
One thing you can do is to import your XSD into your WSDL file.
See http://www-106.ibm.com/developerworks/webservices/library/ws-castor/

Bill

Re: Castor Based objects giving Errors

Posted by "Ananth T. Sarathy" <an...@gmail.com>.
Thanks, that worked. 

The problem was that I used Java to WSDL to set up the intial
framework then, I set up the a Castor object model. I was trying to
recreate a wsdl from the new objects with Java2WSDL to see if it would
work, and it didn't.

Do you know of any ways to create wsdls using the castor objects?

Thanks again,
Ananth

On Mon, 31 Jan 2005 15:31:59 -0500, TMG <tm...@nc.rr.com> wrote:
> Ananth,
> 
> The problem has to do with capitalization, not castor.  The complex type
> "searchParameters" in your schema has to match the capitalization of
> your operation parameter (in retrieveProducts) as defined in your
> server-config.wsdd.  I'm not sure how you got things in this state ...
> generating deploy.wsdd from the wsdl2java should produce the correct
> "case" for the parameter types.  There are lots of ways to resolve the
> problem ... if one doesn't come to mind, let me know.
> 
> Tom Gordon
> 
> Ananth T. Sarathy wrote:
> 
> >I am having a problem with a webservice using Castor objects.
> >
> >I used the attached xsd to create the objects using castor. When I try
> >to use client code to get my products I get this axis fault (client
> >side)
> >
> >AxisFault
> > faultCode: {http://xml.apache.org/axis/}Client
> > faultSubcode:
> > faultString: No such operation 'searchParameters'
> > faultActor:
> > faultNode:
> > faultDetail:
> >       {http://xml.apache.org/axis/}hostname:FED0013160L193
> >
> >No such operation 'searchParameters'
> >       at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
> >       at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
> >       at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083)
> >       at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >       at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> >Source)
> >       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> >Source)
> >       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> >Source)
> >       at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >       at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >       at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
> >       at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:226)
> >       at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
> >       at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
> >       at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
> >       at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173)
> >       at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
> >       at org.apache.axis.client.Call.invoke(Call.java:2702)
> >       at org.apache.axis.client.Call.invoke(Call.java:2378)
> >       at org.apache.axis.client.Call.invoke(Call.java:2301)
> >       at org.apache.axis.client.Call.invoke(Call.java:1758)
> >       at mil.dia.pko.ws.impl.CKOSoapBindingStub.retrieveProducts(CKOSoapBindingStub.java:205)
> >       at mil.dia.pko.ws.impl.tester.main(tester.java:69)
> >
> >
> >When  I marshal the SearchParameter object and make my own soap call I
> >get this error on the server
> >
> >Jan 31 2005 14:35:26,745 - ERROR org.apache.axis.encoding.DeserializerImpl
> > - Unable to marshall between XML and Castor Objects :
> >unable to find FieldDescriptor for 'searchParameters' in ClassDescriptor of Sear
> >chParameters
> >unable to find FieldDescriptor for 'searchParameters' in ClassDescriptor of Sear
> >chParameters
> >        at org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.
> >java:1853)
> >        at org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.
> >java:1399)
> >        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
> >java:245)
> >        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
> >java:182)
> >        at org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventP
> >roducer.java:333)
> >        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
> >java:247)
> >        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
> >java:182)
> >        at org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.ja
> >va:110)
> >        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:585)
> >        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:699)
> >        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:807)
> >        at org.apache.axis.encoding.ser.castor.CastorDeserializer.onEndElement(C
> >astorDeserializer.java:62)
> >        at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl
> >.java:502)
> >        at org.apache.axis.encoding.DeserializationContext.endElement(Deserializ
> >ationContext.java:1083)
> >        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
> >va:171)
> >        at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
> >t.java:1140)
> >        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:238)
> >        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:386)
> >        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
> >.java:148)
> >        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
> >319)
> >        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
> >y.java:32)
> >        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> >        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> >        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450
> >)
> >        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
> >        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:65
> >3)
> >        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> >        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
> >e.java:301)
> >        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
> >(ServletStubImpl.java:971)
> >        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> >pl.java:402)
> >        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
> >pl.java:305)
> >        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
> >n.run(WebAppServletContext.java:6350)
> >        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
> >dSubject.java:317)
> >        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
> >118)
> >        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
> >rvletContext.java:3635)
> >        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
> >pl.java:2585)
> >        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
> >        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
> >
> >I been trying to figure this out for a while and it's driving me nuts.
> >
> >
> >
> >
> >------------------------------------------------------------------------
> >
> ><?xml version="1.0" encoding="UTF-8"?>
> ><deployment xmlns="http://xml.apache.org/axis/wsdd/"
> >       xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> > <globalConfiguration>
> >  <parameter name="adminPassword" value="jery"/>
> >  <parameter name="attachments.Directory" value="C:\bea\user_projects\domains\ckodev\applications\cko\cko\WEB-INF\attachments"/>
> >  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
> >  <parameter name="sendXsiTypes" value="true"/>
> >  <parameter name="sendMultiRefs" value="true"/>
> >  <parameter name="sendXMLDeclaration" value="true"/>
> >  <parameter name="axis.sendMinimizedElements" value="true"/>
> >  <requestFlow>
> >   <handler type="java:org.apache.axis.handlers.JWSHandler">
> >    <parameter name="scope" value="session"/>
> >   </handler>
> >   <handler type="java:org.apache.axis.handlers.JWSHandler">
> >    <parameter name="scope" value="request"/>
> >    <parameter name="extension" value=".jwr"/>
> >   </handler>
> >  </requestFlow>
> > </globalConfiguration>
> > <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
> > <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
> > <requestFlow name="checks">
> >  <handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
> >  <handler type="java:org.apache.axis.handlers.SimpleAuthorizationHandler"/>
> > </requestFlow>
> > <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
> >
> >
> > <service name="AdminService" provider="java:MSG">
> >  <parameter name="allowedMethods" value="AdminService"/>
> >  <parameter name="enableRemoteAdmin" value="true"/>
> >  <parameter name="className" value="org.apache.axis.utils.Admin"/>
> >  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
> >  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
> > </service>
> >
> > <service name="Version" provider="java:RPC">
> >  <parameter name="allowedMethods" value="getVersion"/>
> >  <parameter name="className" value="org.apache.axis.Version"/>
> > </service>
> >
> >  <service name="CKO" provider="java:RPC" style="document" use="literal">
> >         <parameter name="wsdlTargetNamespace" value="http://xml.ws.pko.dia.mil"/>
> >      <parameter name="wsdlServiceElement" value="CKOService"/>
> >      <parameter name="wsdlServicePort" value="CKO"/>
> >      <parameter name="className" value="mil.dia.pko.ws.impl.CKOSoapBindingImpl"/>
> >      <parameter name="wsdlPortType" value="CKO"/>
> >      <operation name="retrieveProducts" qname="retrieveProducts" returnQName="retNS:retrieveProductsReturn" xmlns:retNS="http://xml.ws.pko.dia.mil" returnType="rtns:ProductSummaries" xmlns:rtns="http://xml.ws.pko.dia.mil" soapAction="" >
> >        <parameter qname="pns:in0" xmlns:pns="http://xml.ws.pko.dia.mil" type="tns:SearchParameters" xmlns:tns="http://xml.ws.pko.dia.mil"/>
> >      </operation>
> >      <operation name="retrieveTaxonomy" qname="retrieveTaxonomy" returnQName="retNS:retrieveTaxonomyReturn" xmlns:retNS="http://xml.ws.pko.dia.mil" returnType="rtns:Taxonomy" xmlns:rtns="http://xml.ws.pko.dia.mil" soapAction="" >
> >      </operation>
> >      <parameter name="allowedMethods" value="retrieveProducts retrieveTaxonomy"/>
> >      <parameter name="scope" value="Session"/>
> >
> >
> >      <typeMapping
> >        xmlns:ns="http://xml.ws.pko.dia.mil"
> >        qname="ns:DefenseIssues"
> >        type="java:mil.dia.pko.ws.xml.DefenseIssues"
> >        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
> >        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
> >        encodingStyle=""
> >      />
> >      <typeMapping
> >        xmlns:ns="http://xml.ws.pko.dia.mil"
> >        qname="ns:ProductSummary"
> >        type="java:mil.dia.pko.ws.xml.ProductSummary"
> >        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
> >        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
> >        encodingStyle=""
> >      />
> >      <typeMapping
> >        xmlns:ns="http://xml.ws.pko.dia.mil"
> >        qname="ns:ProductSummaries"
> >        type="java:mil.dia.pko.ws.xml.ProductSummaries"
> >        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
> >        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
> >        encodingStyle=""
> >      />
> >      <typeMapping
> >        xmlns:ns="http://xml.ws.pko.dia.mil"
> >        qname="ns:Topic"
> >        type="java:mil.dia.pko.ws.xml.Topic"
> >        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
> >        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
> >        encodingStyle=""
> >      />
> >      <typeMapping
> >        xmlns:ns="http://xml.ws.pko.dia.mil"
> >        qname="ns:Taxonomy"
> >        type="java:mil.dia.pko.ws.xml.Taxonomy"
> >        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
> >        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
> >        encodingStyle=""
> >      />
> >      <typeMapping
> >        xmlns:ns="http://xml.ws.pko.dia.mil"
> >        qname="ns:DefenseTopicAreas"
> >        type="java:mil.dia.pko.ws.xml.DefenseTopicAreas"
> >        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
> >        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
> >        encodingStyle=""
> >      />
> >      <typeMapping
> >        xmlns:ns="http://xml.ws.pko.dia.mil"
> >        qname="ns:SearchParameters"
> >        type="java:mil.dia.pko.ws.xml.SearchParameters"
> >        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
> >        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
> >        encodingStyle=""
> >      />
> >
> >
> >  </service>
> > <transport name="http">
> >  <requestFlow>
> >   <handler type="URLMapper"/>
> >   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
> >  </requestFlow>
> > </transport>
> > <transport name="local">
> >  <responseFlow>
> >   <handler type="LocalResponder"/>
> >  </responseFlow>
> > </transport>
> ></deployment>
> >
> >------------------------------------------------------------------------
> >
> ><xsd:schema elementFormDefault="qualified" targetNamespace="http://xml.ws.pko.dia.mil"
> >xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >xmlns="http://xml.ws.pko.dia.mil" >
> >    <xsd:element name="DaysWithin">
> >               <xsd:simpleType>
> >                       <xsd:restriction base="xsd:string">
> >                               <xsd:enumeration value="One Day"/>
> >                               <xsd:enumeration value="Two Days"/>
> >                               <xsd:enumeration value="One Week"/>
> >                               <xsd:enumeration value="Two Weeks"/>
> >                               <xsd:enumeration value="Thirty Days"/>
> >                               <xsd:enumeration value="All"/>
> >                       </xsd:restriction>
> >               </xsd:simpleType>
> >       </xsd:element>
> >
> >       <xsd:element name="OrderBy">
> >               <xsd:simpleType>
> >                       <xsd:restriction base="xsd:string">
> >                               <xsd:enumeration value="Organization"/>
> >                               <xsd:enumeration value="Publication Date"/>
> >                               <xsd:enumeration value="Title"/>
> >                       </xsd:restriction>
> >               </xsd:simpleType>
> >       </xsd:element>
> >
> >       <xsd:element name="CountryTrigraph">
> >               <xsd:simpleType>
> >                       <xsd:restriction base="xsd:string">
> >                               <xsd:maxLength value="3"/>
> >                               <xsd:length value="3"/>
> >                               <xsd:minLength value="3"/>
> >                               <xsd:whiteSpace value="collapse"/>
> >                               <xsd:pattern value="[A-Z][A-Z][A-Z]"/>
> >                       </xsd:restriction>
> >               </xsd:simpleType>
> >       </xsd:element>
> >
> >
> >       <xsd:complexType  name="searchParameters">
> >               <xsd:sequence>
> >                       <xsd:element maxOccurs="1" minOccurs="0" ref="CountryTrigraph"/>
> >                       <xsd:element maxOccurs="1" minOccurs="0" name="crisis" type="xsd:string"/>
> >                       <xsd:element maxOccurs="1" minOccurs="1" name="numberOfProducts" type="xsd:int"/>
> >                       <xsd:element maxOccurs="1" minOccurs="0" ref="OrderBy"/>
> >                       <xsd:element maxOccurs="1" minOccurs="0" name="topicID" type="xsd:string"/>
> >                       <xsd:element maxOccurs="1" minOccurs="1" ref="DaysWithin"/>
> >               </xsd:sequence>
> >       </xsd:complexType>
> >
> >
> >       <xsd:element name="ProductSummary">
> >               <xsd:complexType>
> >                       <xsd:sequence>
> >                               <xsd:element name="classification" type="xsd:string"/>
> >                               <xsd:element name="organization" type="xsd:string"/>
> >                               <xsd:element name="publicationDate" type="dateTime"/>
> >                               <xsd:element name="summary" type="xsd:string"/>
> >                               <xsd:element name="title" type="xsd:string"/>
> >                               <xsd:element name="url" type="xsd:string"/>
> >                       </xsd:sequence>
> >               </xsd:complexType>
> >       </xsd:element>
> >
> >       <xsd:element name="ProductSummaries">
> >               <xsd:complexType>
> >                       <xsd:sequence>
> >                               <xsd:element maxOccurs="1" minOccurs="0" name="coreKnowledge" type="xsd:string"/>
> >                               <xsd:element maxOccurs="100" minOccurs="0" ref="ProductSummary"/>
> >                       </xsd:sequence>
> >               </xsd:complexType>
> >       </xsd:element>
> >
> >       <xsd:element name="Topic">
> >               <xsd:complexType>
> >                       <xsd:sequence>
> >                               <xsd:element name="dta" nillable="true" type="xsd:string"/>
> >                               <xsd:element name="id" type="xsd:long"/>
> >                               <xsd:element name="name" nillable="true" type="xsd:string"/>
> >                               <xsd:element name="shortName" nillable="true" type="xsd:string"/>
> >                               <xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
> >                       </xsd:sequence>
> >               </xsd:complexType>
> >       </xsd:element>
> >
> >       <xsd:element name="DefenseIssues">
> >               <xsd:complexType>
> >                       <xsd:sequence>
> >                               <xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
> >                       </xsd:sequence>
> >               </xsd:complexType>
> >       </xsd:element>
> >
> >       <xsd:element name="DefenseTopicAreas">
> >               <xsd:complexType>
> >                       <xsd:sequence>
> >                               <xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
> >                       </xsd:sequence>
> >               </xsd:complexType>
> >       </xsd:element>
> >
> >       <xsd:complexType name="Taxonomy">
> >               <xsd:sequence>
> >                       <xsd:element maxOccurs="1" minOccurs="1" ref="DefenseTopicAreas"/>
> >                       <xsd:element maxOccurs="1" minOccurs="1" ref="DefenseIssues"/>
> >               </xsd:sequence>
> >       </xsd:complexType>
> >
> ></xsd:schema
> >
> >>------------------------------------------------------------------------
> >>
> >>/**
> >> * CKOSoapBindingImpl.java
> >> *
> >> * This file was auto-generated from WSDL by the Apache Axis WSDL2Java emitter.
> >> */
> >>
> >>package mil.dia.pko.ws.impl;
> >>
> >>import java.io.StringWriter;
> >>
> >>import org.exolab.castor.xml.MarshalException;
> >>import org.exolab.castor.xml.Marshaller;
> >>import org.exolab.castor.xml.ValidationException;
> >>
> >>public class CKOSoapBindingImpl implements mil.dia.pko.ws.impl.CKO
> >>{
> >>
> >>    public mil.dia.pko.ws.xml.ProductSummaries retrieveProducts(
> >>            mil.dia.pko.ws.xml.SearchParameters in0)
> >>            throws java.rmi.RemoteException
> >>    {
> >>        System.out.println(in0);
> >>        StringWriter wrt=new StringWriter();
> >>        try
> >>        {
> >>            Marshaller.marshal(in0, wrt);
> >>        }
> >>        catch (MarshalException e)
> >>        {
> >>            // TODO Auto-generated catch block
> >>            e.printStackTrace();
> >>        }
> >>        catch (ValidationException e)
> >>        {
> >>            // TODO Auto-generated catch block
> >>            e.printStackTrace();
> >>        }
> >>        System.out.println(wrt.getBuffer().toString());
> >>
> >>        ProductSummariesRetriever pslr = new ProductSummariesRetriever();
> >>        return pslr.retrieve(in0);
> >>    }
> >>
> >>    public mil.dia.pko.ws.xml.Taxonomy retrieveTaxonomy()
> >>            throws java.rmi.RemoteException
> >>    {
> >>
> >>        return (new TaxonomyRetriever().retrieveTaxonomy());
> >>    }
> >>
> >>}
> >>
> >>------------------------------------------------------------------------
> >>
> >>/**
> >> * CKOSoapBindingStub.java
> >> *
> >> * This file was auto-generated from WSDL
> >> * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
> >> */
> >>
> >>package mil.dia.pko.ws.impl;
> >>
> >>import java.io.IOException;
> >>
> >>import javax.xml.soap.SOAPException;
> >>
> >>public class CKOSoapBindingStub extends org.apache.axis.client.Stub implements mil.dia.pko.ws.impl.CKO {
> >>    private java.util.Vector cachedSerClasses = new java.util.Vector();
> >>    private java.util.Vector cachedSerQNames = new java.util.Vector();
> >>    private java.util.Vector cachedSerFactories = new java.util.Vector();
> >>    private java.util.Vector cachedDeserFactories = new java.util.Vector();
> >>
> >>    static org.apache.axis.description.OperationDesc [] _operations;
> >>
> >>    static {
> >>        _operations = new org.apache.axis.description.OperationDesc[2];
> >>        _initOperationDesc1();
> >>    }
> >>
> >>    private static void _initOperationDesc1(){
> >>        org.apache.axis.description.OperationDesc oper;
> >>        oper = new org.apache.axis.description.OperationDesc();
> >>        oper.setName("retrieveProducts");
> >>        oper.addParameter(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "in0"), new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "SearchParameters"), mil.dia.pko.ws.xml.SearchParameters.class, org.apache.axis.description.ParameterDesc.IN, false, false);
> >>        oper.setReturnType(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "ProductSummaries"));
> >>        oper.setReturnClass(mil.dia.pko.ws.xml.ProductSummaries.class);
> >>        oper.setReturnQName(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "retrieveProductsReturn"));
> >>        oper.setStyle(org.apache.axis.constants.Style.DOCUMENT);
> >>        oper.setUse(org.apache.axis.constants.Use.LITERAL);
> >>        _operations[0] = oper;
> >>
> >>        oper = new org.apache.axis.description.OperationDesc();
> >>        oper.setName("retrieveTaxonomy");
> >>        oper.setReturnType(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "Taxonomy"));
> >>        oper.setReturnClass(mil.dia.pko.ws.xml.Taxonomy.class);
> >>        oper.setReturnQName(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "retrieveTaxonomyReturn"));
> >>        oper.setStyle(org.apache.axis.constants.Style.DOCUMENT);
> >>        oper.setUse(org.apache.axis.constants.Use.LITERAL);
> >>        _operations[1] = oper;
> >>
> >>    }
> >>
> >>    public CKOSoapBindingStub() throws org.apache.axis.AxisFault {
> >>         this(null);
> >>    }
> >>
> >>    public CKOSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
> >>         this(service);
> >>         super.cachedEndpoint = endpointURL;
> >>    }
> >>
> >>    public CKOSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
> >>        if (service == null) {
> >>            super.service = new org.apache.axis.client.Service();
> >>        } else {
> >>            super.service = service;
> >>        }
> >>            java.lang.Class cls;
> >>            javax.xml.namespace.QName qName;
> >>
> >>
> >>            java.lang.Class castorsf =
> >>                org.apache.axis.encoding.ser.castor.CastorSerializerFactory.class;
> >>               java.lang.Class castordf =
> >>                org.apache.axis.encoding.ser.castor.CastorDeserializerFactory.class;
> >>
> >>
> >>            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
> >>            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
> >>            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
> >>            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
> >>            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
> >>            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
> >>            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
> >>            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
> >>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "Taxonomy");
> >>            cachedSerQNames.add(qName);
> >>            cls = mil.dia.pko.ws.xml.Taxonomy.class;
> >>            cachedSerClasses.add(cls);
> >>            cachedSerFactories.add(castorsf);
> >>            cachedDeserFactories.add(castordf);
> >>
> >>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "ProductSummaries");
> >>            cachedSerQNames.add(qName);
> >>            cls = mil.dia.pko.ws.xml.ProductSummaries.class;
> >>            cachedSerClasses.add(cls);
> >>            cachedSerFactories.add(castorsf);
> >>            cachedDeserFactories.add(castordf);
> >>
> >>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "ProductSummary");
> >>            cachedSerQNames.add(qName);
> >>            cls = mil.dia.pko.ws.xml.ProductSummary.class;
> >>            cachedSerClasses.add(cls);
> >>            cachedSerFactories.add(castorsf);
> >>            cachedDeserFactories.add(castordf);
> >>
> >>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "DefenseTopicAreas");
> >>            cachedSerQNames.add(qName);
> >>            cls = mil.dia.pko.ws.xml.DefenseTopicAreas.class;
> >>            cachedSerClasses.add(cls);
> >>            cachedSerFactories.add(castorsf);
> >>            cachedDeserFactories.add(castordf);
> >>
> >>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "SearchParameters");
> >>            cachedSerQNames.add(qName);
> >>            cls = mil.dia.pko.ws.xml.SearchParameters.class;
> >>            cachedSerClasses.add(cls);
> >>            cachedSerFactories.add(castorsf);
> >>            cachedDeserFactories.add(castordf);
> >>
> >>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "Topic");
> >>            cachedSerQNames.add(qName);
> >>            cls = mil.dia.pko.ws.xml.Topic.class;
> >>            cachedSerClasses.add(cls);
> >>            cachedSerFactories.add(castorsf);
> >>            cachedDeserFactories.add(castordf);
> >>
> >>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "DefenseIssues");
> >>            cachedSerQNames.add(qName);
> >>            cls = mil.dia.pko.ws.xml.DefenseIssues.class;
> >>            cachedSerClasses.add(cls);
> >>            cachedSerFactories.add(castorsf);
> >>            cachedDeserFactories.add(castordf);
> >>
> >>    }
> >>
> >>    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
> >>        try {
> >>            org.apache.axis.client.Call _call =
> >>                    (org.apache.axis.client.Call) super.service.createCall();
> >>            if (super.maintainSessionSet) {
> >>                _call.setMaintainSession(super.maintainSession);
> >>            }
> >>            if (super.cachedUsername != null) {
> >>                _call.setUsername(super.cachedUsername);
> >>            }
> >>            if (super.cachedPassword != null) {
> >>                _call.setPassword(super.cachedPassword);
> >>            }
> >>            if (super.cachedEndpoint != null) {
> >>                _call.setTargetEndpointAddress(super.cachedEndpoint);
> >>            }
> >>            if (super.cachedTimeout != null) {
> >>                _call.setTimeout(super.cachedTimeout);
> >>            }
> >>            if (super.cachedPortName != null) {
> >>                _call.setPortName(super.cachedPortName);
> >>            }
> >>            java.util.Enumeration keys = super.cachedProperties.keys();
> >>            while (keys.hasMoreElements()) {
> >>                java.lang.String key = (java.lang.String) keys.nextElement();
> >>                _call.setProperty(key, super.cachedProperties.get(key));
> >>            }
> >>            // All the type mapping information is registered
> >>            // when the first call is made.
> >>            // The type mapping information is actually registered in
> >>            // the TypeMappingRegistry of the service, which
> >>            // is the reason why registration is only needed for the first call.
> >>            synchronized (this) {
> >>                if (firstCall()) {
> >>                    // must set encoding style before registering serializers
> >>                    _call.setEncodingStyle(null);
> >>                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
> >>                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
> >>                        javax.xml.namespace.QName qName =
> >>                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
> >>                        java.lang.Class sf = (java.lang.Class)
> >>                                 cachedSerFactories.get(i);
> >>                        java.lang.Class df = (java.lang.Class)
> >>                                 cachedDeserFactories.get(i);
> >>                        _call.registerTypeMapping(cls, qName, sf, df, false);
> >>                    }
> >>                }
> >>            }
> >>            return _call;
> >>        }
> >>        catch (java.lang.Throwable _t) {
> >>            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
> >>        }
> >>    }
> >>
> >>    public mil.dia.pko.ws.xml.ProductSummaries retrieveProducts(mil.dia.pko.ws.xml.SearchParameters in0) throws java.rmi.RemoteException {
> >>        if (super.cachedEndpoint == null) {
> >>            throw new org.apache.axis.NoEndPointException();
> >>        }
> >>        org.apache.axis.client.Call _call = createCall();
> >>        _call.setOperation(_operations[0]);
> >>        _call.setUseSOAPAction(true);
> >>        _call.setSOAPActionURI("");
> >>        _call.setEncodingStyle(null);
> >>        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
> >>        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
> >>        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
> >>        _call.setOperationName(new javax.xml.namespace.QName("", "retrieveProducts"));
> >>
> >>        setRequestHeaders(_call);
> >>        setAttachments(_call);
> >>        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in0});
> >>
> >>        if (_resp instanceof java.rmi.RemoteException) {
> >>            throw (java.rmi.RemoteException)_resp;
> >>        }
> >>        else {
> >>            extractAttachments(_call);
> >>            try {
> >>                return (mil.dia.pko.ws.xml.ProductSummaries) _resp;
> >>            } catch (java.lang.Exception _exception) {
> >>                return (mil.dia.pko.ws.xml.ProductSummaries) org.apache.axis.utils.JavaUtils.convert(_resp, mil.dia.pko.ws.xml.ProductSummaries.class);
> >>            }
> >>        }
> >>    }
> >>
> >>    public mil.dia.pko.ws.xml.Taxonomy retrieveTaxonomy() throws java.rmi.RemoteException {
> >>        if (super.cachedEndpoint == null) {
> >>            throw new org.apache.axis.NoEndPointException();
> >>        }
> >>        org.apache.axis.client.Call _call = createCall();
> >>        _call.setOperation(_operations[1]);
> >>        _call.setUseSOAPAction(true);
> >>        _call.setSOAPActionURI("");
> >>        _call.setEncodingStyle(null);
> >>        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
> >>        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
> >>        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
> >>        _call.setOperationName(new javax.xml.namespace.QName("", "retrieveTaxonomy"));
> >>
> >>        setRequestHeaders(_call);
> >>        setAttachments(_call);
> >>        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {});
> >>
> >>        if (_resp instanceof java.rmi.RemoteException) {
> >>            throw (java.rmi.RemoteException)_resp;
> >>        }
> >>        else {
> >>            extractAttachments(_call);
> >>            try {
> >>                return (mil.dia.pko.ws.xml.Taxonomy) _resp;
> >>            } catch (java.lang.Exception _exception) {
> >>                return (mil.dia.pko.ws.xml.Taxonomy) org.apache.axis.utils.JavaUtils.convert(_resp, mil.dia.pko.ws.xml.Taxonomy.class);
> >>            }
> >>        }
> >>    }
> >>
> >>}
> >>
> >>
> >>------------------------------------------------------------------------
> >>
> >>/**
> >> * CKOService.java
> >> *
> >> * This file was auto-generated from WSDL
> >> * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
> >> */
> >>
> >>package mil.dia.pko.ws.impl;
> >>
> >>public interface CKOService extends javax.xml.rpc.Service {
> >>    public java.lang.String getCKOAddress();
> >>
> >>    public mil.dia.pko.ws.impl.CKO getCKO() throws javax.xml.rpc.ServiceException;
> >>
> >>    public mil.dia.pko.ws.impl.CKO getCKO(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
> >>}
> >>
> >>
> >>------------------------------------------------------------------------
> >>
> >>/**
> >> * CKO.java
> >> *
> >> * This file was auto-generated from WSDL
> >> * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
> >> */
> >>
> >>package mil.dia.pko.ws.impl;
> >>
> >>public interface CKO extends java.rmi.Remote {
> >>    public mil.dia.pko.ws.xml.ProductSummaries retrieveProducts(mil.dia.pko.ws.xml.SearchParameters searchParameters) throws java.rmi.RemoteException;
> >>    public mil.dia.pko.ws.xml.Taxonomy retrieveTaxonomy() throws java.rmi.RemoteException;
> >>}
> >>
> >>
> 
> 


-- 
Ananth T Sarathy

Re: Castor Based objects giving Errors

Posted by TMG <tm...@nc.rr.com>.
Ananth,

The problem has to do with capitalization, not castor.  The complex type 
"searchParameters" in your schema has to match the capitalization of 
your operation parameter (in retrieveProducts) as defined in your 
server-config.wsdd.  I'm not sure how you got things in this state ... 
generating deploy.wsdd from the wsdl2java should produce the correct 
"case" for the parameter types.  There are lots of ways to resolve the 
problem ... if one doesn't come to mind, let me know.

Tom Gordon

Ananth T. Sarathy wrote:

>I am having a problem with a webservice using Castor objects.
>
>I used the attached xsd to create the objects using castor. When I try
>to use client code to get my products I get this axis fault (client
>side)
>
>AxisFault
> faultCode: {http://xml.apache.org/axis/}Client
> faultSubcode: 
> faultString: No such operation 'searchParameters'
> faultActor: 
> faultNode: 
> faultDetail: 
>	{http://xml.apache.org/axis/}hostname:FED0013160L193
>
>No such operation 'searchParameters'
>	at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
>	at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
>	at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083)
>	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
>Source)
>	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>Source)
>	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>Source)
>	at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>	at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
>	at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:226)
>	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
>	at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
>	at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
>	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173)
>	at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
>	at org.apache.axis.client.Call.invoke(Call.java:2702)
>	at org.apache.axis.client.Call.invoke(Call.java:2378)
>	at org.apache.axis.client.Call.invoke(Call.java:2301)
>	at org.apache.axis.client.Call.invoke(Call.java:1758)
>	at mil.dia.pko.ws.impl.CKOSoapBindingStub.retrieveProducts(CKOSoapBindingStub.java:205)
>	at mil.dia.pko.ws.impl.tester.main(tester.java:69)
> 
>
>When  I marshal the SearchParameter object and make my own soap call I
>get this error on the server
>
>Jan 31 2005 14:35:26,745 - ERROR org.apache.axis.encoding.DeserializerImpl
> - Unable to marshall between XML and Castor Objects :
>unable to find FieldDescriptor for 'searchParameters' in ClassDescriptor of Sear
>chParameters
>unable to find FieldDescriptor for 'searchParameters' in ClassDescriptor of Sear
>chParameters
>        at org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.
>java:1853)
>        at org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.
>java:1399)
>        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
>java:245)
>        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
>java:182)
>        at org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventP
>roducer.java:333)
>        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
>java:247)
>        at org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.
>java:182)
>        at org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.ja
>va:110)
>        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:585)
>        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:699)
>        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:807)
>        at org.apache.axis.encoding.ser.castor.CastorDeserializer.onEndElement(C
>astorDeserializer.java:62)
>        at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl
>.java:502)
>        at org.apache.axis.encoding.DeserializationContext.endElement(Deserializ
>ationContext.java:1083)
>        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
>va:171)
>        at org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
>t.java:1140)
>        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:238)
>        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:386)
>        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
>.java:148)
>        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
>319)
>        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
>y.java:32)
>        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
>        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
>        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450
>)
>        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
>        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:65
>3)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
>e.java:301)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
>(ServletStubImpl.java:971)
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
>pl.java:402)
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
>pl.java:305)
>        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
>n.run(WebAppServletContext.java:6350)
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
>dSubject.java:317)
>        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
>118)
>        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
>rvletContext.java:3635)
>        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
>pl.java:2585)
>        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
>        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>
>I been trying to figure this out for a while and it's driving me nuts.
>
>
>  
>
>------------------------------------------------------------------------
>
><?xml version="1.0" encoding="UTF-8"?>
><deployment xmlns="http://xml.apache.org/axis/wsdd/" 
>	xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> <globalConfiguration>
>  <parameter name="adminPassword" value="jery"/>
>  <parameter name="attachments.Directory" value="C:\bea\user_projects\domains\ckodev\applications\cko\cko\WEB-INF\attachments"/>
>  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
>  <parameter name="sendXsiTypes" value="true"/>
>  <parameter name="sendMultiRefs" value="true"/>
>  <parameter name="sendXMLDeclaration" value="true"/>
>  <parameter name="axis.sendMinimizedElements" value="true"/>
>  <requestFlow>
>   <handler type="java:org.apache.axis.handlers.JWSHandler">
>    <parameter name="scope" value="session"/>
>   </handler>
>   <handler type="java:org.apache.axis.handlers.JWSHandler">
>    <parameter name="scope" value="request"/>
>    <parameter name="extension" value=".jwr"/>
>   </handler>
>  </requestFlow>
> </globalConfiguration>
> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
> <requestFlow name="checks">
>  <handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
>  <handler type="java:org.apache.axis.handlers.SimpleAuthorizationHandler"/>
> </requestFlow>
> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
> 
>
> <service name="AdminService" provider="java:MSG">
>  <parameter name="allowedMethods" value="AdminService"/>
>  <parameter name="enableRemoteAdmin" value="true"/>
>  <parameter name="className" value="org.apache.axis.utils.Admin"/>
>  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
>  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
> </service>
>
> <service name="Version" provider="java:RPC">
>  <parameter name="allowedMethods" value="getVersion"/>
>  <parameter name="className" value="org.apache.axis.Version"/>
> </service>
> 
>  <service name="CKO" provider="java:RPC" style="document" use="literal">
>         <parameter name="wsdlTargetNamespace" value="http://xml.ws.pko.dia.mil"/>
>      <parameter name="wsdlServiceElement" value="CKOService"/>
>      <parameter name="wsdlServicePort" value="CKO"/>
>      <parameter name="className" value="mil.dia.pko.ws.impl.CKOSoapBindingImpl"/>
>      <parameter name="wsdlPortType" value="CKO"/>
>      <operation name="retrieveProducts" qname="retrieveProducts" returnQName="retNS:retrieveProductsReturn" xmlns:retNS="http://xml.ws.pko.dia.mil" returnType="rtns:ProductSummaries" xmlns:rtns="http://xml.ws.pko.dia.mil" soapAction="" >
>        <parameter qname="pns:in0" xmlns:pns="http://xml.ws.pko.dia.mil" type="tns:SearchParameters" xmlns:tns="http://xml.ws.pko.dia.mil"/>
>      </operation>
>      <operation name="retrieveTaxonomy" qname="retrieveTaxonomy" returnQName="retNS:retrieveTaxonomyReturn" xmlns:retNS="http://xml.ws.pko.dia.mil" returnType="rtns:Taxonomy" xmlns:rtns="http://xml.ws.pko.dia.mil" soapAction="" >
>      </operation>
>      <parameter name="allowedMethods" value="retrieveProducts retrieveTaxonomy"/>
>      <parameter name="scope" value="Session"/>
>
>
>      <typeMapping
>        xmlns:ns="http://xml.ws.pko.dia.mil"
>        qname="ns:DefenseIssues"
>        type="java:mil.dia.pko.ws.xml.DefenseIssues"
>        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
>        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
>        encodingStyle=""
>      />
>      <typeMapping
>        xmlns:ns="http://xml.ws.pko.dia.mil"
>        qname="ns:ProductSummary"
>        type="java:mil.dia.pko.ws.xml.ProductSummary"
>        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
>        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
>        encodingStyle=""
>      />
>      <typeMapping
>        xmlns:ns="http://xml.ws.pko.dia.mil"
>        qname="ns:ProductSummaries"
>        type="java:mil.dia.pko.ws.xml.ProductSummaries"
>        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
>        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
>        encodingStyle=""
>      />
>      <typeMapping
>        xmlns:ns="http://xml.ws.pko.dia.mil"
>        qname="ns:Topic"
>        type="java:mil.dia.pko.ws.xml.Topic"
>        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
>        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
>        encodingStyle=""
>      />
>      <typeMapping
>        xmlns:ns="http://xml.ws.pko.dia.mil"
>        qname="ns:Taxonomy"
>        type="java:mil.dia.pko.ws.xml.Taxonomy"
>        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
>        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
>        encodingStyle=""
>      />
>      <typeMapping
>        xmlns:ns="http://xml.ws.pko.dia.mil"
>        qname="ns:DefenseTopicAreas"
>        type="java:mil.dia.pko.ws.xml.DefenseTopicAreas"
>        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
>        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
>        encodingStyle=""
>      />
>      <typeMapping
>        xmlns:ns="http://xml.ws.pko.dia.mil"
>        qname="ns:SearchParameters"
>        type="java:mil.dia.pko.ws.xml.SearchParameters"
>        serializer="org.apache.axis.encoding.ser.castor.CastorSerializerFactory"
>        deserializer="org.apache.axis.encoding.ser.castor.CastorDeserializerFactory"
>        encodingStyle=""
>      />
>      
>       
>  </service>
> <transport name="http">
>  <requestFlow>
>   <handler type="URLMapper"/>
>   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
>  </requestFlow>
> </transport>
> <transport name="local">
>  <responseFlow>
>   <handler type="LocalResponder"/>
>  </responseFlow>
> </transport>
></deployment>
>
>------------------------------------------------------------------------
>
><xsd:schema elementFormDefault="qualified" targetNamespace="http://xml.ws.pko.dia.mil" 
>xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>xmlns="http://xml.ws.pko.dia.mil" >
>    <xsd:element name="DaysWithin">
>		<xsd:simpleType>
>			<xsd:restriction base="xsd:string">
>				<xsd:enumeration value="One Day"/>
>				<xsd:enumeration value="Two Days"/>
>				<xsd:enumeration value="One Week"/>
>				<xsd:enumeration value="Two Weeks"/>
>				<xsd:enumeration value="Thirty Days"/>
>				<xsd:enumeration value="All"/>
>			</xsd:restriction>
>		</xsd:simpleType>
>	</xsd:element>
>	
>	<xsd:element name="OrderBy">
>		<xsd:simpleType>
>			<xsd:restriction base="xsd:string">
>				<xsd:enumeration value="Organization"/>
>				<xsd:enumeration value="Publication Date"/>
>				<xsd:enumeration value="Title"/>
>			</xsd:restriction>
>		</xsd:simpleType>
>	</xsd:element>
>	
>	<xsd:element name="CountryTrigraph">
>		<xsd:simpleType>
>			<xsd:restriction base="xsd:string">
>				<xsd:maxLength value="3"/>
>				<xsd:length value="3"/>
>				<xsd:minLength value="3"/>
>				<xsd:whiteSpace value="collapse"/>
>				<xsd:pattern value="[A-Z][A-Z][A-Z]"/>
>			</xsd:restriction>
>		</xsd:simpleType>
>	</xsd:element>
>	
> 
>	<xsd:complexType  name="searchParameters">
>		<xsd:sequence>
>			<xsd:element maxOccurs="1" minOccurs="0" ref="CountryTrigraph"/>
>			<xsd:element maxOccurs="1" minOccurs="0" name="crisis" type="xsd:string"/>
>			<xsd:element maxOccurs="1" minOccurs="1" name="numberOfProducts" type="xsd:int"/>
>			<xsd:element maxOccurs="1" minOccurs="0" ref="OrderBy"/>
>			<xsd:element maxOccurs="1" minOccurs="0" name="topicID" type="xsd:string"/>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="DaysWithin"/>
>		</xsd:sequence>
>	</xsd:complexType>
> 
>	
>	<xsd:element name="ProductSummary">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element name="classification" type="xsd:string"/>
>				<xsd:element name="organization" type="xsd:string"/>
>				<xsd:element name="publicationDate" type="dateTime"/>
>				<xsd:element name="summary" type="xsd:string"/>
>				<xsd:element name="title" type="xsd:string"/>
>				<xsd:element name="url" type="xsd:string"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="ProductSummaries">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element maxOccurs="1" minOccurs="0" name="coreKnowledge" type="xsd:string"/>
>				<xsd:element maxOccurs="100" minOccurs="0" ref="ProductSummary"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="Topic">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element name="dta" nillable="true" type="xsd:string"/>
>				<xsd:element name="id" type="xsd:long"/>
>				<xsd:element name="name" nillable="true" type="xsd:string"/>
>				<xsd:element name="shortName" nillable="true" type="xsd:string"/>
>				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="DefenseIssues">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:element name="DefenseTopicAreas">
>		<xsd:complexType>
>			<xsd:sequence>
>				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="Topic"/>
>			</xsd:sequence>
>		</xsd:complexType>
>	</xsd:element>
>	
>	<xsd:complexType name="Taxonomy">
>		<xsd:sequence>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="DefenseTopicAreas"/>
>			<xsd:element maxOccurs="1" minOccurs="1" ref="DefenseIssues"/>
>		</xsd:sequence>	
>	</xsd:complexType>
>		
></xsd:schema
>
>>------------------------------------------------------------------------
>>
>>/**
>> * CKOSoapBindingImpl.java
>> * 
>> * This file was auto-generated from WSDL by the Apache Axis WSDL2Java emitter.
>> */
>>
>>package mil.dia.pko.ws.impl;
>>
>>import java.io.StringWriter;
>>
>>import org.exolab.castor.xml.MarshalException;
>>import org.exolab.castor.xml.Marshaller;
>>import org.exolab.castor.xml.ValidationException;
>>
>>public class CKOSoapBindingImpl implements mil.dia.pko.ws.impl.CKO
>>{
>>
>>    public mil.dia.pko.ws.xml.ProductSummaries retrieveProducts(
>>            mil.dia.pko.ws.xml.SearchParameters in0)
>>            throws java.rmi.RemoteException
>>    {
>>        System.out.println(in0);
>>        StringWriter wrt=new StringWriter();
>>        try
>>        {
>>            Marshaller.marshal(in0, wrt);
>>        }
>>        catch (MarshalException e)
>>        {
>>            // TODO Auto-generated catch block
>>            e.printStackTrace();
>>        }
>>        catch (ValidationException e)
>>        {
>>            // TODO Auto-generated catch block
>>            e.printStackTrace();
>>        }
>>        System.out.println(wrt.getBuffer().toString());
>>      
>>        ProductSummariesRetriever pslr = new ProductSummariesRetriever();
>>        return pslr.retrieve(in0);
>>    }
>>
>>    public mil.dia.pko.ws.xml.Taxonomy retrieveTaxonomy()
>>            throws java.rmi.RemoteException
>>    {
>>
>>        return (new TaxonomyRetriever().retrieveTaxonomy());
>>    }
>>
>>}
>>
>>------------------------------------------------------------------------
>>
>>/**
>> * CKOSoapBindingStub.java
>> *
>> * This file was auto-generated from WSDL
>> * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
>> */
>>
>>package mil.dia.pko.ws.impl;
>>
>>import java.io.IOException;
>>
>>import javax.xml.soap.SOAPException;
>>
>>public class CKOSoapBindingStub extends org.apache.axis.client.Stub implements mil.dia.pko.ws.impl.CKO {
>>    private java.util.Vector cachedSerClasses = new java.util.Vector();
>>    private java.util.Vector cachedSerQNames = new java.util.Vector();
>>    private java.util.Vector cachedSerFactories = new java.util.Vector();
>>    private java.util.Vector cachedDeserFactories = new java.util.Vector();
>>
>>    static org.apache.axis.description.OperationDesc [] _operations;
>>
>>    static {
>>        _operations = new org.apache.axis.description.OperationDesc[2];
>>        _initOperationDesc1();
>>    }
>>
>>    private static void _initOperationDesc1(){
>>        org.apache.axis.description.OperationDesc oper;
>>        oper = new org.apache.axis.description.OperationDesc();
>>        oper.setName("retrieveProducts");
>>        oper.addParameter(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "in0"), new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "SearchParameters"), mil.dia.pko.ws.xml.SearchParameters.class, org.apache.axis.description.ParameterDesc.IN, false, false);
>>        oper.setReturnType(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "ProductSummaries"));
>>        oper.setReturnClass(mil.dia.pko.ws.xml.ProductSummaries.class);
>>        oper.setReturnQName(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "retrieveProductsReturn"));
>>        oper.setStyle(org.apache.axis.constants.Style.DOCUMENT);
>>        oper.setUse(org.apache.axis.constants.Use.LITERAL);
>>        _operations[0] = oper;
>>
>>        oper = new org.apache.axis.description.OperationDesc();
>>        oper.setName("retrieveTaxonomy");
>>        oper.setReturnType(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "Taxonomy"));
>>        oper.setReturnClass(mil.dia.pko.ws.xml.Taxonomy.class);
>>        oper.setReturnQName(new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "retrieveTaxonomyReturn"));
>>        oper.setStyle(org.apache.axis.constants.Style.DOCUMENT);
>>        oper.setUse(org.apache.axis.constants.Use.LITERAL);
>>        _operations[1] = oper;
>>
>>    }
>>
>>    public CKOSoapBindingStub() throws org.apache.axis.AxisFault {
>>         this(null);
>>    }
>>
>>    public CKOSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
>>         this(service);
>>         super.cachedEndpoint = endpointURL;
>>    }
>>
>>    public CKOSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
>>        if (service == null) {
>>            super.service = new org.apache.axis.client.Service();
>>        } else {
>>            super.service = service;
>>        }
>>            java.lang.Class cls;
>>            javax.xml.namespace.QName qName;
>>            
>>            
>>            java.lang.Class castorsf =
>>                org.apache.axis.encoding.ser.castor.CastorSerializerFactory.class;
>>               java.lang.Class castordf =
>>                org.apache.axis.encoding.ser.castor.CastorDeserializerFactory.class;
>>
>>               
>>            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
>>            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
>>            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
>>            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
>>            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
>>            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
>>            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
>>            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
>>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "Taxonomy");
>>            cachedSerQNames.add(qName);
>>            cls = mil.dia.pko.ws.xml.Taxonomy.class;
>>            cachedSerClasses.add(cls);
>>            cachedSerFactories.add(castorsf);
>>            cachedDeserFactories.add(castordf);
>>
>>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "ProductSummaries");
>>            cachedSerQNames.add(qName);
>>            cls = mil.dia.pko.ws.xml.ProductSummaries.class;
>>            cachedSerClasses.add(cls);
>>            cachedSerFactories.add(castorsf);
>>            cachedDeserFactories.add(castordf);
>>
>>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "ProductSummary");
>>            cachedSerQNames.add(qName);
>>            cls = mil.dia.pko.ws.xml.ProductSummary.class;
>>            cachedSerClasses.add(cls);
>>            cachedSerFactories.add(castorsf);
>>            cachedDeserFactories.add(castordf);
>>
>>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "DefenseTopicAreas");
>>            cachedSerQNames.add(qName);
>>            cls = mil.dia.pko.ws.xml.DefenseTopicAreas.class;
>>            cachedSerClasses.add(cls);
>>            cachedSerFactories.add(castorsf);
>>            cachedDeserFactories.add(castordf);
>>
>>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "SearchParameters");
>>            cachedSerQNames.add(qName);
>>            cls = mil.dia.pko.ws.xml.SearchParameters.class;
>>            cachedSerClasses.add(cls);
>>            cachedSerFactories.add(castorsf);
>>            cachedDeserFactories.add(castordf);
>>
>>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "Topic");
>>            cachedSerQNames.add(qName);
>>            cls = mil.dia.pko.ws.xml.Topic.class;
>>            cachedSerClasses.add(cls);
>>            cachedSerFactories.add(castorsf);
>>            cachedDeserFactories.add(castordf);
>>
>>            qName = new javax.xml.namespace.QName("http://xml.ws.pko.dia.mil", "DefenseIssues");
>>            cachedSerQNames.add(qName);
>>            cls = mil.dia.pko.ws.xml.DefenseIssues.class;
>>            cachedSerClasses.add(cls);
>>            cachedSerFactories.add(castorsf);
>>            cachedDeserFactories.add(castordf);
>>
>>    }
>>
>>    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
>>        try {
>>            org.apache.axis.client.Call _call =
>>                    (org.apache.axis.client.Call) super.service.createCall();
>>            if (super.maintainSessionSet) {
>>                _call.setMaintainSession(super.maintainSession);
>>            }
>>            if (super.cachedUsername != null) {
>>                _call.setUsername(super.cachedUsername);
>>            }
>>            if (super.cachedPassword != null) {
>>                _call.setPassword(super.cachedPassword);
>>            }
>>            if (super.cachedEndpoint != null) {
>>                _call.setTargetEndpointAddress(super.cachedEndpoint);
>>            }
>>            if (super.cachedTimeout != null) {
>>                _call.setTimeout(super.cachedTimeout);
>>            }
>>            if (super.cachedPortName != null) {
>>                _call.setPortName(super.cachedPortName);
>>            }
>>            java.util.Enumeration keys = super.cachedProperties.keys();
>>            while (keys.hasMoreElements()) {
>>                java.lang.String key = (java.lang.String) keys.nextElement();
>>                _call.setProperty(key, super.cachedProperties.get(key));
>>            }
>>            // All the type mapping information is registered
>>            // when the first call is made.
>>            // The type mapping information is actually registered in
>>            // the TypeMappingRegistry of the service, which
>>            // is the reason why registration is only needed for the first call.
>>            synchronized (this) {
>>                if (firstCall()) {
>>                    // must set encoding style before registering serializers
>>                    _call.setEncodingStyle(null);
>>                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
>>                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
>>                        javax.xml.namespace.QName qName =
>>                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
>>                        java.lang.Class sf = (java.lang.Class)
>>                                 cachedSerFactories.get(i);
>>                        java.lang.Class df = (java.lang.Class)
>>                                 cachedDeserFactories.get(i);
>>                        _call.registerTypeMapping(cls, qName, sf, df, false);
>>                    }
>>                }
>>            }
>>            return _call;
>>        }
>>        catch (java.lang.Throwable _t) {
>>            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
>>        }
>>    }
>>
>>    public mil.dia.pko.ws.xml.ProductSummaries retrieveProducts(mil.dia.pko.ws.xml.SearchParameters in0) throws java.rmi.RemoteException {
>>        if (super.cachedEndpoint == null) {
>>            throw new org.apache.axis.NoEndPointException();
>>        }
>>        org.apache.axis.client.Call _call = createCall();
>>        _call.setOperation(_operations[0]);
>>        _call.setUseSOAPAction(true);
>>        _call.setSOAPActionURI("");
>>        _call.setEncodingStyle(null);
>>        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
>>        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
>>        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
>>        _call.setOperationName(new javax.xml.namespace.QName("", "retrieveProducts"));
>>
>>        setRequestHeaders(_call);
>>        setAttachments(_call);
>>        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in0});
>>
>>        if (_resp instanceof java.rmi.RemoteException) {
>>            throw (java.rmi.RemoteException)_resp;
>>        }
>>        else {
>>            extractAttachments(_call);
>>            try {
>>                return (mil.dia.pko.ws.xml.ProductSummaries) _resp;
>>            } catch (java.lang.Exception _exception) {
>>                return (mil.dia.pko.ws.xml.ProductSummaries) org.apache.axis.utils.JavaUtils.convert(_resp, mil.dia.pko.ws.xml.ProductSummaries.class);
>>            }
>>        }
>>    }
>>
>>    public mil.dia.pko.ws.xml.Taxonomy retrieveTaxonomy() throws java.rmi.RemoteException {
>>        if (super.cachedEndpoint == null) {
>>            throw new org.apache.axis.NoEndPointException();
>>        }
>>        org.apache.axis.client.Call _call = createCall();
>>        _call.setOperation(_operations[1]);
>>        _call.setUseSOAPAction(true);
>>        _call.setSOAPActionURI("");
>>        _call.setEncodingStyle(null);
>>        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
>>        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
>>        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
>>        _call.setOperationName(new javax.xml.namespace.QName("", "retrieveTaxonomy"));
>>
>>        setRequestHeaders(_call);
>>        setAttachments(_call);
>>        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {});
>>
>>        if (_resp instanceof java.rmi.RemoteException) {
>>            throw (java.rmi.RemoteException)_resp;
>>        }
>>        else {
>>            extractAttachments(_call);
>>            try {
>>                return (mil.dia.pko.ws.xml.Taxonomy) _resp;
>>            } catch (java.lang.Exception _exception) {
>>                return (mil.dia.pko.ws.xml.Taxonomy) org.apache.axis.utils.JavaUtils.convert(_resp, mil.dia.pko.ws.xml.Taxonomy.class);
>>            }
>>        }
>>    }
>>
>>}
>>    
>>
>>------------------------------------------------------------------------
>>
>>/**
>> * CKOService.java
>> *
>> * This file was auto-generated from WSDL
>> * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
>> */
>>
>>package mil.dia.pko.ws.impl;
>>
>>public interface CKOService extends javax.xml.rpc.Service {
>>    public java.lang.String getCKOAddress();
>>
>>    public mil.dia.pko.ws.impl.CKO getCKO() throws javax.xml.rpc.ServiceException;
>>
>>    public mil.dia.pko.ws.impl.CKO getCKO(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
>>}
>>    
>>
>>------------------------------------------------------------------------
>>
>>/**
>> * CKO.java
>> *
>> * This file was auto-generated from WSDL
>> * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
>> */
>>
>>package mil.dia.pko.ws.impl;
>>
>>public interface CKO extends java.rmi.Remote {
>>    public mil.dia.pko.ws.xml.ProductSummaries retrieveProducts(mil.dia.pko.ws.xml.SearchParameters searchParameters) throws java.rmi.RemoteException;
>>    public mil.dia.pko.ws.xml.Taxonomy retrieveTaxonomy() throws java.rmi.RemoteException;
>>}
>>    
>>