Hi Dirk, First thanks for the comment regarding the tutorial and we are always encourage users to put their comments and their involvement to improve this community effort. :)
What is your Geronimo version? Are you deploying your web service as WAR file or EJB component? AFAIK there is a bug in web serive current implementation (GERONIMO-1597 which is still in the JIRA with open state). If it is a WAR file I might be able help you to resolve it. Then if you don't mind please share other config files (webservices.xml, WSDL ...). If your component is deployed as a EJB component we might need some help from Web Service experts in the list. ;) Since JAX-RPC is not the easist thing to deal with it is better to use some kind of tool to generate mapping files IMO (this is why JAX-WS comes in to the picture in JEE5). Thanks, Lasantha Ranaweera > -----BEGIN PGP SIGNED MESSAGE----- > Hash: RIPEMD160 > > Hello, > > sorry, I totally forgot to post the stacktrace. Here it is: > > org.apache.geronimo.common.DeploymentException: > java.lang.NullPointerException > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:383) > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:124) > at > org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852) > at > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239) > at > org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:106) > at > org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:60) > at java.lang.Thread.run(Thread.java:595) > Caused by: java.lang.NullPointerException > at > org.apache.geronimo.axis.builder.AxisServiceBuilder.createServiceDesc(AxisServiceBuilder.java:83) > at > org.apache.geronimo.axis.builder.AxisServiceBuilder.createServiceInfo(AxisServiceBuilder.java:73) > at > org.apache.geronimo.axis.builder.AxisBuilder.configureEJB(AxisBuilder.java:141) > at > org.apache.geronimo.axis.builder.AxisBuilder$$FastClassByCGLIB$$16a52a9a.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) > at > org.apache.geronimo.j2ee.deployment.ServiceReferenceBuilder$$EnhancerByCGLIB$$8018ba1f.configureEJB(<generated>) > at > org.openejb.deployment.SessionBuilder.addWSContainerGBean(SessionBuilder.java:215) > at > org.openejb.deployment.SessionBuilder.buildBeans(SessionBuilder.java:197) > at > org.openejb.deployment.OpenEJBModuleBuilder.addGBeans(OpenEJBModuleBuilder.java:514) > at > org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) > at > org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$fe5ad2d4.addGBeans(<generated>) > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:562) > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) > at > org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$a47db46.buildConfiguration(<generated>) > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:302) > ... 10 more > > > > Best regards > > Dirk > > D. Strauss schrieb: >> Hello, >> >> I read the Geronimo Wiki about the Sample JAX RPC webservice. Good >> tutorial :P >> >> However, I fail in developing my own version of it (and YES I don't want >> to install seven hundred tools to get it working as suggested already on >> the ML :P ) >> >> Basically, the error is a NullPointerException on deploy time. I think >> that the error may be in the jaxrpc-mapping.xml but I'm not quite sure >> since this is my first (or second?) try to create a webservice with >> jaxrpc. I'm used to create EJB webservices but thx to a specific bug in >> Geronimo I can't use them anymore :/ >> >> So, I'll attach my jaxrpc-mapping.xml and several other files so that >> you may get an overview of all related files. Maybe Lasantha will find >> the answer ;) >> >> Best regards >> >> Dirk >> >> >> ------------------------------------------------------------------------ >> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?><definitions >> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" >> xmlns:mns="http://www.ds2/firefox/ws/methoden/" >> xmlns:mns0="http://www.ds2/firefox/ws/methoden/P1/" >> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >> xmlns:tns="http://www.ds2/firefox/ws/" >> xmlns:u0="http://www.ds2/firefox/ws/xml/" >> xmlns:xd5="http://www.ds2/xd5/SchemaDatentyp/" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> targetNamespace="http://www.ds2/firefox/ws/" >> xmlns="http://schemas.xmlsoap.org/wsdl/"><!--Created by >> XD5--><types><xsd:schema elementFormDefault="qualified" >> targetNamespace="http://www.ds2/firefox/ws/xml/"><xsd:element >> name="ProxyInfo" type="u0:ProxyInfoType"/><xsd:complexType >> name="ProxyInfoType"><xsd:annotation><xsd:documentation>Ein Info-Element >> mit Proxydaten</xsd:documentation></xsd:annotation><xsd:all><xsd:element >> name="serv > er >> Zeit" type="xsd:dateTime"><xsd:annotation><xsd:documentation>Die >> Serverzeit</xsd:documentation></xsd:annotation></xsd:element><xsd:element >> name="status" >> type="xsd:int"><xsd:annotation><xsd:documentation>Statusanzeige: >> 0=Online, 1=Timer, >> 2=Warnung</xsd:documentation></xsd:annotation></xsd:element><xsd:element >> name="clientSperren" >> type="xsd:boolean"><xsd:annotation><xsd:documentation>Flag, um den >> Client zu >> sperren</xsd:documentation></xsd:annotation></xsd:element><xsd:element >> name="msg" type="xsd:string"><xsd:annotation><xsd:documentation>Eine >> Message für den >> Client</xsd:documentation></xsd:annotation></xsd:element></xsd:all></xsd:complexType></xsd:schema><xsd:schema/><xsd:schema >> elementFormDefault="qualified" >> targetNamespace="http://www.ds2/firefox/ws/methoden/P1/"><xsd:import >> namespace="http://www.ds2/firefox/ws/xml/"/><xsd:element >> name="holeZufall"><xsd:complexType/></xsd:element><xsd:element >> name="P1_holeZufall_Response"><xsd:complexType><xsd:sequence><xsd:element >> name= > "r >> c" >> type="xsd:int"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element >> name="getPInfo"><xsd:complexType><xsd:sequence><xsd:element >> name="clientAdresse" >> type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element >> name="P1_getPInfo_Response"><xsd:complexType><xsd:sequence><xsd:element >> name="rc" >> type="u0:ProxyInfoType"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></types><message >> name="P1_holeZufall_Request"><part element="mns0:holeZufall" >> name="params"/></message><message name="P1_getPInfo_Response"><part >> element="mns0:P1_getPInfo_Response" name="rc"/></message><message >> name="P1_holeZufall_Response"><part >> element="mns0:P1_holeZufall_Response" name="rc"/></message><message >> name="P1_getPInfo_Request"><part element="mns0:getPInfo" >> name="params"/></message><portType name="P1"><operation >> name="holeZufall"><documentation>Liefert eine Zufallszahl >> zurück</documentation><input >> message="tns:P1_holeZufall_Request"/><output message="tns:P1_hol > eZ >> ufall_Response"/></operation><operation >> name="getPInfo"><documentation>Liefert eine Info an den >> Client</documentation><input message="tns:P1_getPInfo_Request"/><output >> message="tns:P1_getPInfo_Response"/></operation></portType><binding >> name="P1Binding0" type="tns:P1"><soap:binding style="document" >> transport="http://schemas.xmlsoap.org/soap/http"/><operation >> name="holeZufall"><soap:operation >> soapAction="http://www.ds2/firefox/ws/methoden/#holeZufall"/><input><soap:body >> use="literal"/></input><output><soap:body >> use="literal"/></output></operation><operation >> name="getPInfo"><soap:operation >> soapAction="http://www.ds2/firefox/ws/methoden/#getPInfo"/><input><soap:body >> use="literal"/></input><output><soap:body >> use="literal"/></output></operation></binding><service >> name="FirefoxService"><port binding="tns:P1Binding0" >> name="P1"><soap:address >> location="http://localhost/services/Bla"/></port></service></definitions> >> >> >> ------------------------------------------------------------------------ >> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?><web-app >> xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" >> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"><!--Created >> by >> XD5--><dep:environment><dep:moduleId><dep:groupId>FirefoxWsTest</dep:groupId><dep:artifactId>War1</dep:artifactId><dep:version>1.0</dep:version><dep:type>war</dep:type></dep:moduleId><dep:dependencies><dep:dependency><dep:groupId>geronimo</dep:groupId><dep:artifactId>geronimo-axis</dep:artifactId><dep:type>jar</dep:type></dep:dependency><dep:dependency><dep:groupId>geronimo</dep:groupId><dep:artifactId>geronimo-webservices</dep:artifactId><dep:type>jar</dep:type></dep:dependency></dep:dependencies></dep:environment></web-app> >> >> >> ------------------------------------------------------------------------ >> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?><java-wsdl-mapping >> xmlns:p0="http://www.ds2/firefox/ws/xml/" >> xmlns:wsNS="http://www.ds2/firefox/ws/" version="1.1" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee >> http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd" >> xmlns="http://java.sun.com/xml/ns/j2ee"><!--Created by >> XD5--><package-mapping><package-type>firefox.test.ejb.xml</package-type><namespaceURI>http://www.ds2/firefox/ws/xml/</namespaceURI></package-mapping><java-xml-type-mapping><java-type>firefox.test.ejb.xml.ProxyInfo</java-type><root-type-qname>p0:ProxyInfoType</root-type-qname><qname-scope>complexType</qname-scope><variable-mapping><java-variable-name>serverZeit</java-variable-name><xml-element-name>serverZeit</xml-element-name></variable-mapping><variable-mapping><java-variable-name>status</java-variable-name><xml-element-name>status</xml-element-name></variable-mapping><variable-mapping> > <j >> >> ava-variable-name>clientSperren</java-variable-name><xml-element-name>clientSperren</xml-element-name></variable-mapping><variable-mapping><java-variable-name>msg</java-variable-name><xml-element-name>msg</xml-element-name></variable-mapping></java-xml-type-mapping><service-interface-mapping><service-interface>firefox.test.ws.EPIF</service-interface><wsdl-service-name>wsNS:FirefoxService</wsdl-service-name><port-mapping><port-name>P1</port-name><java-port>P1</java-port></port-mapping></service-interface-mapping><service-endpoint-interface-mapping><service-endpoint-interface>firefox.test.ws.EPIF</service-endpoint-interface><wsdl-port-type>wsNS:P1</wsdl-port-type><wsdl-binding>wsNS:P1Binding0</wsdl-binding><service-endpoint-method-mapping><java-method-name>holeZufall</java-method-name><wsdl-operation>holeZufall</wsdl-operation><wrapped-element/><wsdl-return-value-mapping><method-return-value>int</method-return-value><wsdl-message>wsNS:P1_holeZufall_Response</wsdl-message><w s > dl >> >> -message-part-name>rc</wsdl-message-part-name></wsdl-return-value-mapping></service-endpoint-method-mapping><service-endpoint-method-mapping><java-method-name>holeProxyInfo</java-method-name><wsdl-operation>getPInfo</wsdl-operation><wrapped-element/><method-param-parts-mapping><param-position>0</param-position><param-type>java.lang.String</param-type><wsdl-message-mapping><wsdl-message>wsNS:P1_getPInfo_Request</wsdl-message><wsdl-message-part-name>clientAdresse</wsdl-message-part-name><parameter-mode>IN</parameter-mode></wsdl-message-mapping></method-param-parts-mapping><wsdl-return-value-mapping><method-return-value>firefox.test.ejb.xml.ProxyInfo</method-return-value><wsdl-message>wsNS:P1_getPInfo_Response</wsdl-message><wsdl-message-part-name>rc</wsdl-message-part-name></wsdl-return-value-mapping></service-endpoint-method-mapping></service-endpoint-interface-mapping></java-wsdl-mapping> >> >> >> ------------------------------------------------------------------------ >> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?><web-app >> version="2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee >> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >> xmlns="http://java.sun.com/xml/ns/j2ee"><!--Created by >> XD5--><display-name>Firefox Webservices >> Testsite</display-name><listener><listener-class>firefox.test.listeners.StartupListener</listener-class></listener><servlet><description>Die >> Update-RDF-Datei</description><servlet-name>updateSite</servlet-name><servlet-class>firefox.test.servlets.UpdateSite</servlet-class></servlet><servlet-mapping><servlet-name>updateSite</servlet-name><url-pattern>/update.rdf</url-pattern></servlet-mapping><servlet><servlet-name>JaxEP</servlet-name><servlet-class>firefox.test.ws.EP</servlet-class></servlet><servlet-mapping><servlet-name>JaxEP</servlet-name><url-pattern>/ep1</url-pattern></servlet-mapping><servlet><servlet-name>microsummary</servlet-name><servlet-class >>f >> >> irefox.test.servlets.Microsummary</servlet-class></servlet><servlet-mapping><servlet-name>microsummary</servlet-name><url-pattern>/ms.xml</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jspx</welcome-file></welcome-file-list><jsp-config><taglib><taglib-uri>/fxws</taglib-uri><taglib-location>/WEB-INF/fxws.tld</taglib-location></taglib></jsp-config></web-app> >> >> >> ------------------------------------------------------------------------ >> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?><webservices >> version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee >> http://java.sun.com/xml/ns/j2ee/j2ee_web_services_1_1.xsd" >> xmlns="http://java.sun.com/xml/ns/j2ee"><!--Created by >> XD5--><display-name>Firefox >> Webservice</display-name><webservice-description><description>Ein >> Testservice zur Nutzung mit einer >> Extension.</description><webservice-description-name>FirefoxService</webservice-description-name><wsdl-file>WEB-INF/wsdl/firefox.wsdl</wsdl-file><jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file><port-component><port-component-name>P1</port-component-name><wsdl-port >> xmlns:ws0ns0="http://www.ds2/firefox/ws/">ws0ns0:P1</wsdl-port><service-endpoint-interface>firefox.test.ws.EPIF</service-endpoint-interface><service-impl-bean><servlet-link>JaxEP</servlet-link></service-impl-bean></port-component></webservice-description></webservices> >> >> >> ------------------------------------------------------------------------ >> >> /** >> * >> */ >> package firefox.test.ws; >> >> import java.util.Random; >> >> import javax.jws.WebMethod; >> import javax.jws.WebService; >> >> import firefox.test.ejb.xml.ProxyInfo; >> >> import xd5.annotations.WsdlOperationsArt; >> import xd5.annotations.ejb.XD5EjbInterfaceMethod; >> import xd5.annotations.web.XD5WebServlet; >> import xd5.annotations.ws.XD5WebservicePort; >> >> import kaeto23.tools.DebugLogger; >> >> /** >> * @author kaeto23 >> * >> */ >> @WebService(serviceName="FirefoxService",portName="P1") >> @XD5WebServlet(name="JaxEP", urlMappings={"/ep1"}) >> @XD5WebservicePort(portName="P1", >> serviceNameID="FirefoxService",jaxRpcServletName="JaxEP",jaxRpcServiceIF="firefox.test.ws.EPIF") >> public class EP extends DebugLogger implements EPIF { >> private Random zufall=null; >> >> /** >> * >> */ >> public EP() { >> super(); >> zufall=new Random(); >> } >> @WebMethod >> @XD5EjbInterfaceMethod(descr = "Liefert eine Zufallszahl >> zur\u00fcck",wsdlOperation=WsdlOperationsArt.Notification) >> public int holeZufall() { >> return zufall.nextInt(); >> } >> @XD5EjbInterfaceMethod(descr="Liefert eine Info an den >> Client",wsdlAlias="getPInfo") >> @WebMethod(operationName="getPInfo") >> public ProxyInfo holeProxyInfo(String clientAdresse){ >> finest("Liefere Proxyinfo. Param ist "+clientAdresse); >> ProxyInfo rc=new ProxyInfo(); >> rc.setClientSperren(false); >> rc.setMsg("Hello, Client"); >> rc.setStatus(zufall.nextInt(3)); >> return rc; >> } >> >> } >> >> >> ------------------------------------------------------------------------ >> >> /** >> * >> */ >> package firefox.test.ws; >> >> import java.rmi.Remote; >> import java.rmi.RemoteException; >> >> import firefox.test.ejb.xml.ProxyInfo; >> >> /** >> * @author kaeto23 >> * >> */ >> public interface EPIF extends Remote{ >> public int holeZufall() throws RemoteException; >> public ProxyInfo holeProxyInfo(String clientAdresse) throws >> RemoteException; >> } > > - -- > Kaeto23 > > HTTP: http://kaeto23.dnsalias.com (german!) > Jabber: jabber://[EMAIL PROTECTED]/DS2 > > Reclaim Your Inbox! > http://www.mozilla.org/products/thunderbird/ > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.2 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFFgVfXbiSTaBU+G6oRA20XAKCIjdhnQVBdVwq+BVcNPkasJ4d7ygCfZiEF > d9V4lKDORtAATmp4LMir7wc= > =cG2n > -----END PGP SIGNATURE----- > > > > > > ___________________________________________________________ > Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: > http://mail.yahoo.de >
