gpt4 book ai didi

从 Applet 调用 Web 服务时出现 java InvokingTargetException

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:51 26 4
gpt4 key购买 nike

我有一个本地托管的 Web 服务,我想从小程序调用它。我已经使用 wsimport 和服务 wsdl 创建了必要的服务处理代码。我已经测试了 java 客户端和 .Net 服务可以在我的 IDE 中正常工作。

因此,我将代码打包并签名,然后将其放入网页中。我从 javascript 调用小程序。我添加了一个 helloWorld() 方法来确认小程序加载并且 JS 可以访问它。当我调用 Web 服务时,代码没有捕获任何异常。相反,页面会出现错误。当我检查它是什么时,它是一个目标调用异常。

我添加了一些系统输出调用,但它在这里快要死了:

ServiceEndpoint authService = new ServiceEndpoint(
new URL(serviceURL),
new QName(serviceNamespace, serviceName)

它调用的类是使用 wsimport 创建的。 serviceName 等是传递的字符串。当我查看此类的生成代码时,它实例化了其父类(super class) javax.xml.ws.Service。

我被难住了。难道 javax.xml.ws.Service 对浏览器不可用?我认为在这种情况下会出现类未找到异常。

感谢您的帮助。

最佳答案

我发现了这个问题,但它给我带来了一个新问题。首先,答案。我需要将对网络服务的调用包装在:

AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
try
{
// Do my stuff here
}
}
}

我不明白的是为什么。我调用的 Web 服务与加载小程序位于同一服务器上。我用来访问 Web 服务的 wsimport 生成的类是否可能正在执行我不知道的操作?

很高兴我找到了解决办法,但不高兴的是我不明白为什么。

任何想法或启发都会很棒。

谢谢

关于从 Applet 调用 Web 服务时出现 java InvokingTargetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com