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="server
 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_holeZ
 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><wsdl
 -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;
}

Reply via email to