Исключение JSP IllegalArgumentException: com.sun.xml.messaging.saaj.soap.LocalString != com.sun.xml.internal.messaging.saaj.soap.Проблема с локальными строками

#java #eclipse #jsp #tomcat #struts

#java #eclipse #jsp #tomcat #struts

Вопрос:

Я создаю программу, которая взаимодействует с веб-сервисом, который написан с использованием JSP и Struts. Но когда я хочу создать новый экземпляр веб-сервиса, я получаю следующую ошибку:

 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. Веб-сервер работает с JAX-WS 2.2.3

Кто-нибудь знает решение этой проблемы?

Заранее спасибо!

Ответ №1:

У вас есть несколько библиотек SAAJ с разными версиями в пути к классам среды выполнения вашего веб-приложения. SAAJ уже поставляется в комплекте с JDK. Возможно, у вас есть какой-то saaj-*.jar файл в вашем веб-приложении /WEB-INF/lib , который конфликтует с библиотекой SAAJ, входящей в комплект JDK. Очистите его.