2014-02-20 122 views
-3

我想从apache tomcat调用我的servlet GetAttributeValueServlet,并且显示此错误。 该Servlet在CloudWebServerClient来自Tomcat的Servlet调用抛出HTTP状态500 - java.lang.NullPointerException

Severe: Servlet.service() for servlet [servlet.GetAttributeValueServlet] in context with path [/CloudWebServiceClient] threw exception 
AxisFault 
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException 
faultSubcode: 
faultString: java.lang.NullPointerException 
faultActor: 
faultNode: 
faultDetail: 
    {http://xml.apache.org/axis/}hostname 

java.lang.NullPointerException 
    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 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source) 
    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.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796) 
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144) 
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) 
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) 
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) 
    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.client.service.WebServiceProxySoapBindingStub.getAttributeValue(WebServiceProxySoapBindingStub.java:297) 
    at com.client.service.WebServiceProxyProxy.getAttributeValue(WebServiceProxyProxy.java:50) 
    at servlet.GetAttributeValueServlet.doGet(GetAttributeValueServlet.java:48) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

web.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
    <display-name>CloudWebServiceServer</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <display-name>GetAttributeValueServlet</display-name> 
    <servlet-name>GetAttributeValueServlet</servlet-name> 
    <servlet-class>com.src.servlet.GetAttributeValueServlet</servlet-class> 
    </servlet> 

    <servlet> 
    <display-name>Apache-Axis Servlet</display-name> 
    <servlet-name>AxisServlet</servlet-name> 
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>GetAttributeValueServlet</servlet-name> 
    <url-pattern>/CloudWebServiceClient/WebContent/GetAttributeValueServlet</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
    <servlet-name>AxisServlet</servlet-name> 
    <url-pattern>/servlet/AxisServlet</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
    <servlet-name>AxisServlet</servlet-name> 
    <url-pattern>*.jws</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
    <servlet-name>AxisServlet</servlet-name> 
    <url-pattern>/services/*</url-pattern> 
    </servlet-mapping> 

    <servlet> 
    <display-name>Axis Admin Servlet</display-name> 
    <servlet-name>AdminServlet</servlet-name> 
    <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> 
    <load-on-startup>100</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>AdminServlet</servlet-name> 
    <url-pattern>/servlet/AdminServlet</url-pattern> 
    </servlet-mapping> 
    </web-app> 

GetAttributeValueServlet:

package servlet; 

    import java.io.IOException; 
    import java.io.PrintWriter; 

    import javax.servlet.ServletException; 
    import javax.servlet.annotation.WebServlet; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 

    import com.client.service.WebServiceProxy; 
    import com.client.service.WebServiceProxyProxy; 


    /** 
    * Servlet implementation class GetAttributeValueServlet 
    */ 
    @WebServlet("/GetAttributeValueServlet") 
    public class GetAttributeValueServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public GetAttributeValueServlet() { 
    super(); 
    // TODO Auto-generated constructor stub 
    } 

    /** 
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
*/ 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 

    response.setHeader("Access-Control-Allow-Origin", "*"); 
    response.setContentType("text/xml;charset=utf-8"); 
    String EntityID=request.getParameter("entity_id"); 
    String AttrName=request.getParameter("attrName"); 


    //String Value=request.getParameter("value"); 
    System.out.println(EntityID+AttrName); 

    WebServiceProxy wsp = new WebServiceProxyProxy(); 
    System.out.println("Huuu"); //just to see if it is coming to this point and yes it comes to this point and after that throws exception! 
    String isGet = wsp.getAttributeValue(EntityID, AttrName); 
    System.out.println("Hagfgfg"); //it doesn't shows this value! 
    PrintWriter pw = response.getWriter(); 

     pw.print(isGet);  

    return; 
} 


/** 
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
*/ 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
} 

}

+0

的错误是在servlet的代码,而不是在网络映射.xml – developerwjk

+0

你可以看看它吗??...它真的很紧迫...我已经完成了我的项目,如果你会帮我解决这个问题...我已经复制Servlet代码 – BollyBoy

回答

0

我解决它....但问题是在参数attrName这是零,这是因为错误的函数调用;)感谢名单反正

0

使用值,然后从用request.getParameter(拉),你应该检查他们是否他们是空的,如果他们做了一些事情。

String entityID = request.getParameter("entity_id"); 
if(entityID==null) 
{ 
    entityID = ""; 
    //or maybe print a message to user "Entity ID is required field" and return; 
} 

或者你可以确保他们不为空这样的:

String entityID = "" + request.getParameter("entity_id"); 

这意味着,如果什么出来的request.getParameter()的为空,现在这将是字符串值“null”而不是null。

+0

thanx答复但entity_id ist不为空....我打电话的属性有一个ID,这不是空... – BollyBoy

+0

你承担这一点。但情况并非总是如此,这就是为什么你不应该假设它。如果有人在没有经过html表单的情况下访问您的servlet,则参数将为空。 – developerwjk

+0

当我使用apache Tomcat调用servlet时,它给出了entity_id和attributename,但之后抛出一个异常...并且isGet = null ..... – BollyBoy

相关问题