Hallo,
ich habe eine WSDL-Datei eines WebService, den ich nutze. Um zum Testen keine Verbindung zum echten Webservice zu benötigen, habe ich mir einen Stub erstellt, der sich nach außen wie der echte WebService verhalten soll. Prinzipiell hat das funktioniert, jedoch möchte ich diesen nun lokal als WebService veröffentlichen und bekomme folgenden Fehler:
Der Aufruf ist folgender:
Das Interface MyWebService wurde von der WSDL bereitgestellt und per jax-ws generiert. MyWebServiceStub ist die Stub-Klasse, die den echten WebService imitieren soll. isAlive ist eine Methode, die vom WebService bereitgestellt wird und für die auch von jax-ws die Klasse IsAlive generiert wurde. Fragwürdig ist jedoch das package: my.webservice.jaxws.IsAlive. Tatsächlich befindet sich die Klasse in my.webservice.IsAlive.
Jetzt fehlt mir hier etwas der Ansatzpunkt, wo ich nach dem Problem suchen könnte. Offenbar wird hier das falsche Package erwartet. Woher kommt das "jaxws" im Packagenamen? Was kann ich tun, um mein Problem zu lösen?
ich habe eine WSDL-Datei eines WebService, den ich nutze. Um zum Testen keine Verbindung zum echten Webservice zu benötigen, habe ich mir einen Stub erstellt, der sich nach außen wie der echte WebService verhalten soll. Prinzipiell hat das funktioniert, jedoch möchte ich diesen nun lokal als WebService veröffentlichen und bekomme folgenden Fehler:
Code:
Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class my.webservice.jaxws.IsAlive is not found. Have you run APT to generate them?
at com.sun.xml.internal.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:256)
at com.sun.xml.internal.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:567)
at com.sun.xml.internal.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:514)
at com.sun.xml.internal.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:341)
at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:227)
at com.sun.xml.internal.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:308)
at com.sun.xml.internal.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:174)
at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:420)
at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:439)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:208)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:138)
at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:92)
at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
at my.webstub.StubStarter.main(StubStarter.java:31)
Der Aufruf ist folgender:
Java:
public class StubStarter {
public static void main(String[] args) {
Endpoint endpoint = Endpoint.publish("http://localhost/MyWebService/services/MyWebService", new MyWebServiceStub());
}
}
Das Interface MyWebService wurde von der WSDL bereitgestellt und per jax-ws generiert. MyWebServiceStub ist die Stub-Klasse, die den echten WebService imitieren soll. isAlive ist eine Methode, die vom WebService bereitgestellt wird und für die auch von jax-ws die Klasse IsAlive generiert wurde. Fragwürdig ist jedoch das package: my.webservice.jaxws.IsAlive. Tatsächlich befindet sich die Klasse in my.webservice.IsAlive.
Jetzt fehlt mir hier etwas der Ansatzpunkt, wo ich nach dem Problem suchen könnte. Offenbar wird hier das falsche Package erwartet. Woher kommt das "jaxws" im Packagenamen? Was kann ich tun, um mein Problem zu lösen?