下面这段代码直接运行main函数是可以的,但用程序触发的时候在conn.getOutputStream() 会报空指针异常,请各位大哥大姐们指点下! 谢谢!!public Object sendRequest() 
        throws Exception 
    { 
        BufferedOutputStream writer =null; 
        try 
        { 
            URL url; 
            String xmlStr = (String)obj; 
             
            //设置连接时的参数 
            //url = new URL(configAttr.getUrl()); 
            url = new URL("http://10.40.59.14:38071/CMSTest/CMSTest/TestValue"); 
            HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 
            conn.setRequestProperty("Accept", "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"); 
            conn.setRequestProperty("User-Agent", "Jakarta Commons-HttpClient/3.0"); 
            conn.setRequestProperty("Connection", "keep-alive"); 
            conn.setRequestMethod("POST"); 
            conn.setRequestProperty("Content-Type", "text/xml;charset=GBK"); 
            conn.setDoOutput(true); 
            writer = new BufferedOutputStream(conn.getOutputStream()); 
            // 发送出去给服务端 
            writer.write(xmlStr.getBytes("GBK")); 
             
            writer.flush(); 
           
            //返回响应流 
            return conn.getInputStream(); 
        } 
        catch (IOException e) 
        { 
            throw new IOException("http request info fail,maybe config paramter is err!"); 
        } 
        finally 
        { 
            writer.close(); 
        } 
       
    } 
     
    public static void main(String[] args) 
    { 
        SendAcceptMessage sm = new SendAcceptMessage(); 
        try 
        { 
            String ss = "<Message><ServiceType>2</ServiceType><ActionType>3</ActionType><Body><InfoList><Info><EmailAddr>ddddd@</EmailAddr><Content>消息类型:录像质量报告,镜头id:010201120500000071,镜头名称:WangZhengLenssssssssss1,所属的域:江苏dsdsd,镜头的录像丢失时长:26171,录像丢失时间段:2009-12-28 05:59:00 ~~ 2009-12-28 13:00:01,2009-12-28 23:25:01 ~~ 2009-12-28 23:40:112009-12-28 23:25:01 ~~ 2009-12-28 23:40:11,,录像索引个数:3,帧率:null,码率:129,丢帧率:359,最大帧长:null,平均帧长:null,最小帧长:null,收到的数据总量:null,写入的数据总量:null,接收帧总量:null,写入帧总量:null,写入关键帧总量:null,接收关键帧:null,录像文件大小:null,开始时间:2009-12-23 10:37:12,结束时间:2009-12-26 13:58:08,</Content></Info>InfoList></Body></Message>"; 
            sm.sendRequest(ss, null); 
        } 
        catch (Exception e) 
        { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 
    } 

解决方案 »

  1.   

    应该是conn没取到,debug看下这个到底有没有?
    HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 
    另外,别是你的http://10.40.59.14:38071/CMSTest/CMSTest/TestValue停掉叻吧?
      

  2.   

    谢谢各位!这个只是空指针异常,具体异常信息我明天到公司在发下。楼上那位兄弟说的conn连接服务停掉是不会的,这个根本服务根本没有停,包括一些与tomcat 端口冲突,struts过滤器问题都考虑过了,不是这些问题,
      

  3.   

    这些是抛出的异常信息
    class sun.net.www.protocol.http.HttpURLConnection26.12.2009 16:44:35 *DEBUG* [watchthread] TaskManager: daemothreads.intervalrun.time:60 (TaskManager.java, line 1031)
    26.12.2009 16:44:36 *DEBUG* [watchthread] TaskManager: daemothreads.intervalrun.time:60 (TaskManager.java, line 1031)
    26.12.2009 16:44:36 *DEBUG* [watchthread] TaskManager: daemothreads.intervalrun.time:60 (TaskManager.java, line 1031)
    java.lang.NullPointerException
     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:781)
     at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:669)
     at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:836)
     at com.huawei.nvs.sys.alarmgw.sendaccept.SendAcceptMessage.sendRequest(SendAcceptMessage.java:95)
     at com.huawei.nvs.sys.alarmgw.parse.HttpXMLParse.requestDisposal(HttpXMLParse.java:69)
     at com.huawei.nvs.service.record.qualityreport.SendQualityReportMsg.NruUpAogwMsg(SendQualityReportMsg.java:339)
     at com.huawei.nvs.ps.console.ajax.record.policy.ModifyQueryRecordPolicyAction.exec(ModifyQueryRecordPolicyAction.java:78)
     at com.huawei.nvs.ps.common.ConsoleAction.execute(ConsoleAction.java:83)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:585)
     at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
     at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
     at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
     at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
     at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
     at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
     at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept