java - JSP IllegalArgumentException : com. sun.xml.messaging.saaj.soap.LocalString!= com.sun.xml.internal.messaging.saaj.soap.LocalStrings问题

标签 java eclipse jsp tomcat struts

我正在创建一个与 Web 服务通信的程序,该程序是用 JSP 和 Struts 编写的。但是当我想创建 Web 服务的新实例时,出现以下错误:

SEVERE: Servlet.service() for servlet [FrontController] in context with path [/P3_GUI] threw exception [Servlet execution threw an exception] with root cause
java.lang.IllegalArgumentException: com.sun.xml.messaging.saaj.soap.LocalStrings != com.sun.xml.internal.messaging.saaj.soap.LocalStrings

这发生在我的 ActionClass 的以下代码中

 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

  import org.apache.struts.action.Action;
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionForward;
  import org.apache.struts.action.ActionMapping;

  import vakws.Vak;
  import vakws.VakService;

  public class AddAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,     HttpServletRequest request, HttpServletResponse response) {
    AddForm myForm = (AddForm)form;

    VakService service = new VakService();
    Vak vakProxy = service.getVakPort();

    boolean result = vakProxy.addVak(myForm.getVakName(), Double.parseDouble(myForm.getVakMark()));

    if(!result){
        return mapping.findForward("show_addError");    
    }       
    return mapping.findForward("show_addResults");      
  }
}

VakService和VakProxy是使用wsdl文档自动生成的。

我正在 Eclipse 中进行开发,并将该程序部署在 Tomcat 服务器上。 Web 服务器使用 JAX-WS 2.2.3 运行

有人知道这个问题的解决方案吗?

提前致谢!

最佳答案

您的 web 应用程序的运行时类路径中有多个不同版本的 SAAJ 库。 SAAJ 已经与 JDK 捆绑在一起。可能您的 web 应用程序的 /WEB-INF/lib 中有一些 saaj-*.jar 文件,它与 JDK 捆绑的 SAAJ 库冲突。清理它。

关于java - JSP IllegalArgumentException : com. sun.xml.messaging.saaj.soap.LocalString!= com.sun.xml.internal.messaging.saaj.soap.LocalStrings问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928040/

相关文章:

java - 从 double 中删除 '.0',但保留所有其他可能性

java - 为什么要在 main() 和外部方法中声明一个对象?

java - 如何知道我的代码的哪一部分占用更多 CPU

java - 捕获内存不足错误的正确位置

Android模拟器调试,代码不会更新

java - Servlet : Singleton, 单线程或多实例多线程

java - 如何识别从多个提要中收集的重复项并将其链接到数据库中

python - 如何在 Eclipse 的 PyDev 插件中删除尾随空格

java - TestNG 未在 selenium webdriver 中的测试注释内执行方法

java - 在 servlet 中禁用浏览器缓存