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

Reply via email to