Hi,
I re worked my embedding of XFire in my webapp as per the instructions -
http://xfire.codehaus.org/Embedding+XFire
I now get this
Thread [main] (Suspended (exception NullPointerException))
XFireComponent(GenericServlet).getServletContext() line: 159
XFireComponent(XFireServlet).createController() line: 97
XFireComponent(XFireServlet).getController() line: 71
XFireComponent.init() line: 49
XFireComponent.initialize() line: 58
ContainerUtil.initialize(Object) line: 282
DefaultComponentFactory.newInstance() line: 323
DefaultComponentHandler.doGet() line: 169
DefaultComponentHandler(ComponentHandler).get() line: 408
ExcaliburComponentManager.lookup(String) line: 302
TurbineAvalonComponentService.initialize() line: 188
TurbineAvalonComponentService.init() line: 98
TurbineServices(BaseServiceBroker).initService(String) line: 283
TurbineServices(BaseServiceBroker).doInitService(String) line: 363
TurbineServices(BaseServiceBroker).initServices(boolean) line: 335
TurbineServices(BaseServiceBroker).init() line: 152
Turbine.configure(ServletConfig, ServletContext) line: 378
Turbine.init() line: 191
Turbine(GenericServlet).init(ServletConfig) line: 211
StandardWrapper.loadServlet() line: 1091
StandardWrapper.load() line: 925
StandardContext.loadOnStartup(Container[]) line: 3880
StandardContext.start() line: 4141
StandardHost(ContainerBase).start() line: 1012
StandardHost.start() line: 718
StandardEngine(ContainerBase).start() line: 1012
StandardEngine.start() line: 442
StandardService.start() line: 450
StandardServer.start() line: 680
Catalina.start() line: 536
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: not
available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not
available
Method.invoke(Object, Object...) line: not available
Bootstrap.start() line: 275
Bootstrap.main(String[]) line: 413
My implemetation is
public void init() throws ServletException {
XFire xfire = XFireFactory.newInstance().getXFire();
ObjectServiceFactory factory = new
ObjectServiceFactory(xfire.getTransportManager(), null);
//we don't want to expose compareTo
factory.addIgnoredMethods("java.lang.Comparable");
Service service =
factory.create(PaladyneService.class,"SearchSecurities", null, null);
try {
service.setWSDLWriter(new ResourceWSDL(urlToWSDL));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
service.setProperty(ObjectInvoker.SERVICE_IMPL_CLASS,
PaladyneComponent.class);
//we register the service with the controller that handles soap
requests
getController().getServiceRegistry().register(service);
}
My web.xml part referring to this service is
<servlet>
<servlet-name>XFire</servlet-name>
<display-name>XFire Servlet</display-name>
<servlet-class>XFireComponent</servlet-class>
</servlet>
<servlet>
<servlet-name>transformer</servlet-name>
<servlet-class>org.apache.turbine.Turbine</servlet-class>
<init-param>
<param-name>properties</param-name>
<param-value>WEB-INF/conf/TurbineResources.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>transformer</servlet-name>
<url-pattern>/servlet/transformer/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFire</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
Am I missing a step? The servlet-class is correct, even tried it with the
fully qualified name com.stpenable.transformer.avalon.xfire.XFireComponent
with no change to the exception
Thanks,
David
-----Original Message-----
From: David [mailto:[EMAIL PROTECTED]
Sent: 04 December 2006 12:40
To: [email protected]
Subject: RE: [xfire-user] AegisBindingProvider cannot find the xsi:type, but
it is there!
Hi,
Not sure what to do to debug this, any suggestions?
David
-----Original Message-----
From: David [mailto:[EMAIL PROTECTED]
Sent: 01 December 2006 12:28
To: [email protected]
Subject: [xfire-user] AegisBindingProvider cannot find the xsi:type, but it
is there!
Hi,
Plugged in the XFire 1.2.2 when I had been using an earlier version. Did not
change my configuration at all, it had been working. Now when I hit any of
the methods on the service and breakpoint them it never reaches them. Does
the targetNamespace have to be a real resolvable URL? I am getting this INFO
message in the logs, no exceptions.
2006-12-01 11:25:24,890 [http-8081-Processor24] INFO
org.codehaus.xfire.aegis.AegisBindingProvider -
xsi:type="{http://soap.transformer.stpenable.com}OptionSearchParameters" was
specified, but no corresponding Type was registered; defaulting to
{http://www.w3.org/2001/XMLSchema}anyType
Now that xsi:type is in the WSDL
The WSDL is (removed the types not relevant to this query, it is a little
large otherwise)
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"
xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"
xmlns:tns="http://soap.transformer.stpenable.com"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://soap.transformer.stpenable.com">
<wsdl:types>
<s:schema targetNamespace="http://soap.transformer.stpenable.com"
elementFormDefault="qualified" attributeFormDefault="qualified">
...
<s:element name="getOptions">
<s:complexType>
<s:sequence maxOccurs="1" minOccurs="0">
<s:element name="getOptionsRequest" type="tns:OptionSearchParameters">
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getOptionsResponse">
<s:complexType>
<s:sequence maxOccurs="1" minOccurs="0">
<s:element name="GetOptionsResults" type="tns:ArrayOfOptionDTO">
</s:element> </s:sequence> </s:complexType> </s:element>
.
<s:complexType name="OptionSearchParameters">
<s:complexContent mixed="false">
<s:extension base="tns:BasicSearchParameters">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" default="-2147483648" name="Year"
type="s:int" /> <s:element minOccurs="0" maxOccurs="1" default="-2147483648"
name="Month" type="s:int" /> <s:element minOccurs="0" maxOccurs="1"
default="-79228162514264337593543950335" name="StrikePrice" type="s:decimal"
/> <s:element minOccurs="0" maxOccurs="1" name="OptionType" type="s:string"
/> </s:sequence> </s:extension> </s:complexContent> </s:complexType>
..
</s:schema>
</wsdl:types>
..
<wsdl:message name="getOptionsResponse">
<wsdl:part element="tns:getOptionsResponse" name="getOptionsResponse" >
</wsdl:part> </wsdl:message> <wsdl:message name="getOptionsRequest">
<wsdl:part element="tns:getOptions" name="getOptions" > </wsdl:part>
</wsdl:message>
..
<wsdl:operation name="getOptions">
<wsdl:input message="tns:getOptionsRequest"
name="getOptionsRequest"></wsdl:input>
<wsdl:output message="tns:getOptionsResponse"
name="getOptionsResponse"></wsdl:output>
</wsdl:operation>
...
<wsdl:binding name="SearchSecuritiesHttpBinding"
type="tns:SearchSecuritiesPortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation
name="searchSecurities"> <wsdlsoap:operation soapAction="" />
...
<wsdl:operation name="getOptions">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getOptionsRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="getOptionsResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
..
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SearchSecurities">
<wsdl:port binding="tns:SearchSecuritiesHttpBinding"
name="SearchSecuritiesHttpPort">
<wsdlsoap:address
location="http://localhost:8081/transformer/services/SearchSecurities" />
</wsdl:port> </wsdl:service> </wsdl:definitions>
My wsdl is resolvable
(http://localhost:8081/transformer/resources/SearchSecurities.wsdl)
So I am not sure what is missing.
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email