zwei Fragen über WS-Projektchen
Frage1:
Ich habe " javax.xml.ws.WebFault" gefunden, hat dies dieselbe Funktionalität wie "org.apache.axis.AxisFault" ? Wenn ja, wie benutzt man dann?
Frage2:
ich habe sowas:
-----------------------
package serv;
import javax.xml.ws.WebFault;
@WebFault
public class AddNumbersException extends Exception {
String detail;
public AddNumbersException (String message, String detail) {
super (message);
this.detail = detail;
}
public String getDetail () {
return detail;
}
}
-------------------------
package serv;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(name="XinWevService")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class AddNumbersImpl {
@WebMethod
public int addNumbers(@WebParam(name="number1")int number1,
@WebParam(name="number2")int number2)
throws AddNumbersException
{
if (number1 < 0 || number2 < 0) {
throw new AddNumbersException("Negative number cannot be added!",
"Numbers: "+ number1 + ", " + number2 );
}
return number1 + number2;
}
}
-------------------------
package serv;
import javax.xml.ws.Endpoint;
public class AddWebservice {
public static void main( String[] args ) throws Exception {
Endpoint endpoint = Endpoint.publish( "http://localhost:8080/addnummbers",new AddNumbersImpl());
new EndpointStopper(9090, endpoint);
}
}
----------------------
package serv;
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import javax.xml.ws.Endpoint;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class EndpointStopper {
EndpointStopper(final int port, final Endpoint endpoint) throws IOException {
final HttpServer server = HttpServer.create(new InetSocketAddress(port), 5);
final ExecutorService threads = Executors.newFixedThreadPool(2);
server.setExecutor(threads);
server.start();
HttpContext context = server.createContext("/stop");
context.setHandler(new HttpHandler() {
public void handle(HttpExchange msg) throws IOException {
System.out.println("Shutting down the Endpoint");
endpoint.stop();
System.out.println("Endpoint is down");
msg.sendResponseHeaders(200, 0);
msg.close();
server.stop(1);
threads.shutdown();
}
});
}
}
----------------------
Nach der Ausführung kriegte ich immer:
Exception in thread "main" Server Runtime Error: class: serv.jaxws.AddNumbersExceptionBean could not be found......
Caused by: class: serv.jaxws.AddNumbersExceptionBean could not be found...
Ich habe schon lange Zeite versucht,disen Fehler zu beseitigen, leider keine gute Nachrichten, also Hilfe!!
