从小程序调用Web服务时的java InvocationTargetException

从小程序调用Web服务时的java InvocationTargetException,java,web-services,exception,Java,Web Services,Exception,我有一个本地托管的web服务,我想通过小程序调用它。我已经使用wsimport和服务wsdl创建了必要的服务处理代码。我已经在IDE中测试了java客户端和.Net服务是否正常工作 所以我把代码打包并签名,然后把它放在一个网页上。我从javascript调用小程序。我添加了一个helloWorld()方法,以确认applet加载并且JS可以访问它。当我调用web服务时,代码不会捕获任何异常。相反,页面会出现错误。当我检查它是什么时,它是一个目标调用异常 我添加了一些sys out呼叫,它在这里正

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

所以我把代码打包并签名,然后把它放在一个网页上。我从javascript调用小程序。我添加了一个helloWorld()方法,以确认applet加载并且JS可以访问它。当我调用web服务时,代码不会捕获任何异常。相反,页面会出现错误。当我检查它是什么时,它是一个目标调用异常

我添加了一些sys out呼叫,它在这里正在消亡:

ServiceEndpoint authService = new ServiceEndpoint(
   new URL(serviceURL),
   new QName(serviceNamespace, serviceName)
它调用的类是使用wsimport创建的。serviceName等是传递的字符串。当我查看这个类的生成代码时,它实例化了它的超级类javax.xml.ws.Service

我被难住了。是否浏览器无法使用javax.xml.ws.Service?我认为在这种情况下会有一个类未发现异常


谢谢你的帮助。

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

AccessController.doPrivileged(new PrivilegedAction<Object>()
{
  public Object run()
  {
    try
    {
       // Do my stuff here
    }
  }
}
AccessController.doPrivileged(新的PrivilegedAction()
{
公共对象运行()
{
尝试
{
//在这里做我的事
}
}
}
我不明白的是为什么。我调用的web服务与加载小程序的服务器位于同一台服务器上。是否可能是我用来访问web服务的wsimport生成的类正在执行我不知道的操作

很高兴我找到了工作,不高兴我不明白为什么

任何想法或启发都将是美妙的


谢谢

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

AccessController.doPrivileged(new PrivilegedAction<Object>()
{
  public Object run()
  {
    try
    {
       // Do my stuff here
    }
  }
}
AccessController.doPrivileged(新的PrivilegedAction()
{
公共对象运行()
{
尝试
{
//在这里做我的事
}
}
}
我不明白的是为什么。我调用的web服务与加载小程序的服务器位于同一台服务器上。是否可能是我用来访问web服务的wsimport生成的类正在执行我不知道的操作

很高兴我找到了工作,不高兴我不明白为什么

任何想法或启发都将是美妙的


谢谢

@souldTower-我也遇到过同样的问题,我相信这是在Java 6 update 22的某个地方引入的一个bug(它在Java 6和5的所有早期版本中都正常工作)。@souldTower-我也遇到过同样的问题,我相信这是在Java 6 update 22的某个地方引入的bug(它在Java6和Java5之前的所有版本中都正常工作)。