Webservice im JBoss: runtime modeler error

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Javaprogrammierer,

ich habe auf meinem JBoss 4.2.3 einen kleinen Webservice aufgesetzt (um genau zu sein den Beispiel-Webservice, der in vielen Tutorials benutzt wird). Dieser läuft auch einwandfrei. Ich kann die WSDL Datei erreichen und diese sieht wie gewünscht aus. Aber ein Webservice sollte nun einmal auch aufgerufen werden können. Hierfür habe ich einen kleinen Client entwickelt, der den Webservice aufrufen soll. Wenn dieser Client nun versucht die Methode des Webservices aufzurufen, bekomme ich folgende Exception:

Code:
Exception in thread "main" com.sun.xml.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class service.jaxws.SayHello is not found. Have you run APT to generate them?
	at com.sun.xml.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:249)
	at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:545)
	at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:492)
	at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:334)
	at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:220)
	at com.sun.xml.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:588)
	at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:291)
	at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:274)
	at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:302)
	at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:306)
	at javax.xml.ws.Service.getPort(Service.java:161)
	at test.ServiceTest.<init>(ServiceTest.java:24)
	at test.ServiceTest.main(ServiceTest.java:14)

Nachdem ich nun schon mehrere Stunden im Internet u. a. mithilfe von google nach Lösungen gesucht habe und dabei gescheitert bin Frage ich hier nach, ob jemand das Problem kennt und vlt. sogar eine Lösung dafür hat.

Die restlichen Sources sind:

Vom Webservice:

Code:
package service;

import javax.ejb.Remote;
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
@Remote
public interface HelloService {

	@WebMethod
	public String sayHello(String name);
	
}

Code:
package service;

import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService(serviceName="HelloService", portName="HelloServiceBean", endpointInterface="service.HelloService")
@Stateless
public class HelloServiceBean implements HelloService{

	@WebMethod
	public String sayHello(String name) {
		System.out.println("Hallo " + name);
		return "Hallo " + name;
	}
	
}

Und schließlich auch der Client:

Code:
package test;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import service.HelloService;

public class ServiceTest {

	public static void main(String[] args) {
		new ServiceTest();

	}

	
	public ServiceTest() {
		try {
			Service s = Service.create(new URL("http://127.0.0.1:8080/HalloWS_EJB/HelloServiceBean?wsdl"),
					new QName("http://service/", "HelloService"));
			
			HelloService h = s.getPort(HelloService.class);
			
			System.out.println(h.sayHello("Bla"));  // Diese Zeile wird als Fehlerquelle markiert.
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	}
}

Der Client hat in seinem Classpath auch das EJB-Projekt..... Ich habe bereits versucht die Interfaces des EJB-Projektes in ein extra Projekt zu packen und dadurch nur die Interfaces im Classpath des Clients zu haben, dies hat auch nicht geholfen.

Ich habe schon einmal einen solchen Webservice + Client auf einem anderen Rechner entwickelt und da hat es funktioniert, ich weiß nicht was ich hier falsch gemacht habe.

Ich hoffe mir kann jemand helfen.

Vielen Dank im Voraus.
 
Hat keiner eine Antwort?

Wie sieht es denn bei euch aus? Funktioniert bei euch das hier genannte Beispiel oder kommt der gleiche Fehler oder vielleicht sogar ein anderer?
 
welches sample ist es denn genau ?

du kannst den webservice ansonsten auch mit SoapUI testen. das kann ich sehr empfehlen.
einfach die generierte wsdl laden und ausführen.

vielleicht klappt es damit ja =)
 
Danke erstmal für die Antwort.

Der Webservice an sich funktioniert... ich habe ihn mal mit einem anderen Client aufgerufen.

Aber wieso funktioniert mein Java Client nicht?
Beim Java-Client kann man ja eig. nicht viel falsch machen... eigentlich...

Das sample ist in diesem Falle marke eigenbau...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben