Java 在JAR文件中调用类时获取调用目标异常

Java 在JAR文件中调用类时获取调用目标异常,java,eclipse,class,parsing,Java,Eclipse,Class,Parsing,我在运行优胜美地的MacBookPro上运行Tomcat8。我在EclipseLuna中创建了一个web服务,如果我没有在我的其他项目中引用一个类,它就可以工作。类名是Token。它在IDE中解析。在web服务中,我需要一个参数“userToken”,它当前的形式是“S:m:n:userId:name:organization:role:state”。如果我遗漏了参数中的一项,我会得到一个StringTokenizer异常,它告诉我web服务正在将参数传递给Token类,其中StringToke

我在运行优胜美地的MacBookPro上运行Tomcat8。我在EclipseLuna中创建了一个web服务,如果我没有在我的其他项目中引用一个类,它就可以工作。类名是Token。它在IDE中解析。在web服务中,我需要一个参数“userToken”,它当前的形式是“S:m:n:userId:name:organization:role:state”。如果我遗漏了参数中的一项,我会得到一个StringTokenizer异常,它告诉我web服务正在将参数传递给Token类,其中StringTokenizer过早地耗尽了令牌。我之所以添加此选项,是因为似乎正在查找和处理该类。如果我为标记器提供了一个具有正确项数的有效参数,我将得到一个调用目标异常,我无法找出它

以下是我在IDE控制台中获得的堆栈跟踪的一部分:

java.lang.reflect.InvocationTargetException
    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at com.shoulderscorp.services.StateMachineWSSoapBindingStub.getUsersApplicationsAndProcesses(StateMachineWSSoapBindingStub.java:106)
    at com.shoulderscorp.services.StateMachineWSProxy.getUsersApplicationsAndProcesses(StateMachineWSProxy.java:50)
    at org.apache.jsp.home_jsp._jspService(home_jsp.java:322)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
如果我提供此方法“getUsersApplicationsAndProcesses”所需的参数部分,即组织,而不进行解析,则该方法工作正常,并返回在浏览器中正确显示的xml

  • 有人能给我一个关于可能发生的事情的提示吗。顺便说一句,如果我使用“main”程序中的参数运行该方法,它将正常工作

  • 我怎样才能找到错误?当调试器在我的IDE中运行时,我似乎无法让调试器正常工作并进入代码


  • Zounds!我发现了问题。我认为,在这个网站上提问有助于我更多地思考它,以便解释它,这有助于解决问题

    我没有将另一个项目包含到IDE的部署程序集中。因此,它正确编译并在IDE中正确运行,但无法找到该类,该类在部署时位于另一个项目中。当我在web服务代码中放置Class.forName(“Token”).newInstance()时,我发现了一个提示

    因为这是我第一次尝试使用来自另一个项目的引用的web服务,所以这是我第一次遇到这个问题。我没有看到任何地方引用过另一个项目的例子

    我相信一些让他们感觉更真实的例子可能会对网站有所帮助,而不是我们在任何地方都能找到的非常简单、几乎是“Hello,world”的例子