Hi, I noticed the missing super.init() as soon as I sent the email, but that is not it. My Servlet class is an Avalon component and I was calling init() during the intialize phase of the component, which is too early. Clearly Xfire calls it on the first request, after it has set up the ServletContenxt.
David -----Original Message----- From: David [mailto:[EMAIL PROTECTED] Sent: 05 December 2006 11:32 To: [email protected] Subject: RE: [xfire-user] AegisBindingProvider cannot find the xsi:type, but it is there! 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 --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email
