高手帮忙看看:applet不能访问web service
client端用Applet访问web service,在Eclipse下启动Applet时报错(web service用的是xfire-1.2.2)
Applet代码:
public class AppletClient extends JApplet {
private static final String WS_URL = "http://localhost:8080/DbCenter/services/DbCenterWS";
public void init() {
Service serviceModel = new ObjectServiceFactory().create(IDbWS.class);
IDbWS service = null;
try {
service = (IDbWS) new XFireProxyFactory().create(serviceModel, WS_URL);
// queryAll
List<String> list = service.queryAllSponsors();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
报错:
org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Server returned error code = 405 for URI : http://localhost:8080/DbCenter/services/DbCenterWS. Check server logs for details
org.codehaus.xfire.fault.XFireFault: Server returned error code = 405 for URI : http://localhost:8080/DbCenter/services/DbCenterWS. Check server logs for details
at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
at org.codehaus.xfire.client.Client.invoke(Client.java:335)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy0.queryAllSponsors(Unknown Source)
at com.era.dbCenter.seat.service.AppletClient.queryAllSponsors(AppletClient.java:185)
at com.era.dbCenter.seat.service.AppletClient.myInit(AppletClient.java:98)
at com.era.dbCenter.seat.service.AppletClient.init(AppletClient.java:91)
at sun.applet.AppletPanel.run(AppletPanel.java:378)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.codehaus.xfire.XFireRuntimeException: Server returned error code = 405 for URI : http://localhost:8080/DbCenter/services/DbCenterWS. Check server logs for details
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:130)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
... 9 more
但是如果把JApplet换成JFrame:
public class FrameClient extends JFrame {
private static final String WS_URL = "http://localhost:8080/DbCenter/services/DbCenterWS";
public FrameClient() {
Service serviceModel = new ObjectServiceFactory().create(IDbWS.class);
IDbWS service = null;
try {
service = (IDbWS) new XFireProxyFactory().create(serviceModel, WS_URL);
// queryAll
List<String> list = service.queryAllSponsors();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
JFrame f = new FrameClient();
}
}
这样的话就没有任何问题,这个问题如何解决?