Witam
Mam prosty projekt klient-serwer na bazie JAX-WS.
Usluga sieciowa posiada metody:
@WebMethod
public Object getData(){
return (Object)new Dane();
}
@WebMethod
public String getString(){
return "Zwracam String";
}
Natomiast aplikacja clienta:
public static void main(String[] args) {
// TODO code application logic here
try { // Call Web Service Operation
testdanych.endpoint.MainService service = new testdanych.endpoint.MainService();
testdanych.endpoint.Main port = service.getMainPort();
// TODO process result here
java.lang.Object result = port.getData();
//System.out.println("Result = "+result);
} catch (Exception ex) {
ex.printStackTrace();
// TODO handle custom exceptions here
}
try { // Call Web Service Operation
testdanych.endpoint.MainService service = new testdanych.endpoint.MainService();
testdanych.endpoint.Main port = service.getMainPort();
// TODO process result here
java.lang.String result = port.getString();
System.out.println("Result = "+result);
} catch (Exception ex) {
// TODO handle custom exceptions here
}
}
Wszystko dobrze dziala dla pobierania Stringu. Natomiast przy pobieraniu Object notabeme jest to objekt typu Data (ktory zostal zdefiniowany w osobnym pliku) pojawia sie wyjatek:
com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html;charset=utf-8 Supported ones are: [text/xml]
at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:116)
at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:280)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:158)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:74)
at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:581)
at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:540)
at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:525)
at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:422)
at com.sun.xml.internal.ws.client.Stub.process(Stub.java:235)
at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:120)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:230)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:210)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:103)
at $Proxy28.getData(Unknown Source)
at testdanychclient.Main.main(Main.java:25)
Jesli zamiast new Data() dam new Object() to dalej wyskakuje ten sam wyjatek a przeciez Object zgodnie z: http://java.sun.com/javaee/5/docs/tutorial/doc/bnazq.html#bnazs objekty Object mozna przesylac wiec w czym jest problem?