-----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 Hello, Lasantha
my Geronimo version here is 1.1.1 tomcat. Regarding the various files: I already attached those files with the first mail in this thread. Is your mail provider stripping off any attachments? :/ Anyway, yes, I agree that JAX RPC is definitely one of the worst ideas to create webservices. I already did some testing with JAX-WS (aka JAX-RPC 2) and all I can say is that I LOVE IT :P Especially the automatic wsdl generation. It's what I absolutely like ^_^ I heard that Geronimo 2.0 will feature JAX-WS and EJB3. According to the milestone documentation a milestone will be available this year. Hopefully the JAX-WS will find its way to Geronimo soon :P Best regards Dirk Lasantha Ranaweera schrieb: > 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 > > 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; >>>> } >> >> >> >> >> ___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de >> - -- 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 iD8DBQFFgligbiSTaBU+G6oRA/KFAJ4+oxZXizDsDdkW2vG5MrZaq0+ILwCeLFKp sZKj5XpfSIDsbT2ubyctqMw= =u1co -----END PGP SIGNATURE----- ___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de