Java 调用C#版web services 接口出问题,代码如下:短信接口地址:http://smp.expo2010oa.gov.cn/SmpWebService/SmpWebService.asmx
web  services  XML如下:
POST /SmpWebService/SmpWebService.asmx HTTP/1.1
Host: smp.expo2010oa.gov.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://beyondbit.com/smp/SendSms"<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SendSms xmlns="http://beyondbit.com/smp">
      <content>string</content>
      <addresseeTel>string</addresseeTel>
      <sendTime>dateTime</sendTime>
      <userAccount>string</userAccount>
      <password>string</password>
      <appCode>string</appCode>
    </SendSms>
  </soap:Body>
</soap:Envelope>Java代码如下:package com.business.manager;import java.io.IOException;
import java.util.Date;import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.encoding.XMLType;import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import com.business.manager.TestHelloService;public class OaWebService_bian {
   private  static  final  String   webService_url = "http://smp.expo2010oa.gov.cn/SmpWebService/SmpWebService.asmx";
   
   public void callSayHelloToPerson(String  content,String addresseeTel,Date sendTime,String userAccount,String password,String appCode) {
       try {
           Service service = new Service();
           Call call = (Call) service.createCall();
           call.setOperationName(new QName("http://beyondbit.com/smp/SendSms","SendSms"));
           call.addParameter("content", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
           call.addParameter("addresseeTel", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
           call.addParameter("sendTime", org.apache.axis.Constants.XSD_DATETIME,javax.xml.rpc.ParameterMode.IN);
           call.addParameter("userAccount", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
           call.addParameter("password", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
           call.addParameter("appCode", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
           call.setReturnType(XMLType.XSD_STRING);
           call.setTargetEndpointAddress(new java.net.URL(webService_url));
           call.setUseSOAPAction(true);
           call.setSOAPActionURI("http://beyondbit.com/smp/SendSms");
           //call.setUseSOAPAction(true);
           //call.setSOAPActionURI(webService_url);
           String ret = (String) call.invoke(new Object[] {content,addresseeTel,sendTime,userAccount,password,appCode});
           System.out.println("The return value is:" + ret);
           return;
       }catch (IOException e) {
           e.printStackTrace();
       }catch (ServiceException ex1) {
           ex1.printStackTrace();
       }
   }
   public static void main(String[] args) {
   OaWebService1 tester = new OaWebService1();
   String content="test1";
   String addresseeTel="13466565127";
   //date  sendTime="2009-07-14 10:10:10";
   Date  date = new Date();
   String userAccount="test1";
   String password="123456";
   String appCode="shouceguanli";
      tester.callSayHelloToPerson(content,addresseeTel,date,userAccount,password,appCode);
  }
}错误如下:
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
 faultSubcode: 
 faultString: Server did not recognize the value of HTTP Header SOAPAction: .
 faultActor: 
 faultNode: 
 faultDetail: 
{http://xml.apache.org/axis/}stackTrace:Server did not recognize the value of HTTP Header SOAPAction: .
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 oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1318)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:206)
at oracle.xml.jaxp.JXSAXParser.parse(JXSAXParser.java:292)
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.business.manager.OaWebService1.callSayHelloToPerson(OaWebService1.java:30)
at com.business.manager.OaWebService_bian.main(OaWebService_bian.java:52) {http://xml.apache.org/axis/}hostname:fb5a7619c10b4ebServer did not recognize the value of HTTP Header SOAPAction: .
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 oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1318)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:206)
at oracle.xml.jaxp.JXSAXParser.parse(JXSAXParser.java:292)
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.business.manager.OaWebService1.callSayHelloToPerson(OaWebService1.java:30)
at com.business.manager.OaWebService_bian.main(OaWebService_bian.java:52)

解决方案 »

  1.   

    RTSP测试
    介绍RTSP测试例测试下包含的所有KPI和PQI指标含义。 
    RTP测试
    介绍RTP测试例测试下包含的所有KPI和PQI指标含义。 
    连接时间指标
    ConnectTimeKPI
    说明 连接时间指标用来度量RTSP协议连接时间的性能,主要包括RTSP连接建立时间和RTSP连接断开时间。一次完整的测试包含RTSP连接建立和连接断开的过程。U2520进行业务性能测试时,一次测试中产生的两个KPI若有一个不达标则认为连接时间指标不达标,并产生一个DSQ(Degradation Service Quality)服务质量降级事件
     
    丢包率指标
    由于RTSP测试采用UDP协议的方式传输媒体流报文,因此网络的拥塞丢包及用户终端缓冲丢包等都会对用户体验VOD业务的质量造成影响。VOD业务丢包率计算包括网络传输丢包和抖动丢包,基本的语音丢包率应该小于0.05%。
      

  2.   

    PacketLossRatioKPI
    说明 每次RTSP测试,探针会单向发送一定数量的模拟媒体流报文,对端收到后会统计实际传输的丢包数和由于拥塞或抖动等原因造成探针缓冲溢出的丢包数。U2520系统会将每次测试的丢包率作为一个KPI值存入系统数据库。
     
    会话时间指标
    SessionTimeKPI
    说明 会话时间指标体现系统执行RTSP媒体流控制的响应性能,包括媒体流的引流、前进、倒退及暂停等控制。
     
    上限抖动指标
    抖动对VOD业务的视频质量至关重要,在实际VOD业务传输中,终端会通过缓冲来一定程度上提高由于抖动导致的视频质量下降。外置探针NEU100可以模拟VOD终端的缓冲行为,并且可以配置缓冲的大小,基本的视频抖动一般应该小于5ms。UpperJitterKPI
    说明 上限抖动指标仅对超过阈值的抖动报文进行统计,因此相对平均抖动指标,上限抖动指标更精确的统计报文抖动的情况。通过在探针上设置抖动的上、下限阈值,收到的所有超过上限阈值报文的百分比即为上限抖动指标。该指标反映了一段时间内报文的到达情况,一定程度上减少了由于突发拥塞或丢包对抖动计算造成的影响。