高手帮忙看看:applet不能访问web service

dengjm_wh 2007-07-05 10:13:07
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();
}
}

这样的话就没有任何问题,这个问题如何解决?
...全文
380 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
littcai 2011-04-15
  • 打赏
  • 举报
回复
不用修改策略文件,直接对applet签名即可,客户端会弹出授权提示
dengjm_wh 2007-07-06
  • 打赏
  • 举报
回复
我加了,还是不行啊
dengjm_wh 2007-07-05
  • 打赏
  • 举报
回复
没人懂?
dengjm_wh 2007-07-05
  • 打赏
  • 举报
回复
顶!
zjf405 2007-07-05
  • 打赏
  • 举报
回复
JRE目录->lib->security->java.policy
加上permission java.security.AllPermission;
dengjm_wh 2007-07-05
  • 打赏
  • 举报
回复
楼上的,策略文件是哪个,谢谢!
zjf405 2007-07-05
  • 打赏
  • 举报
回复
applet有安全性限制,修改一下applet运行环境下的策略文件~~

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧