我在tomcat服务器上部署了一个web服务,并为其生成了一个wsdl文件。
后来,我通过wsdl生成了一个新的soap项目,并对服务器执行了一个soap请求。
这里的问题是在服务器端,xml的解组失败,因为“输入数据”和“CCNA”的命名空间前缀是错误的。目前是cfa。
根据java代码,InputData的命名空间是xs,CCNA是bim。所以,如果我修改了soap请求,服务器端的解组就可以了。
那么,问题出在哪里呢?WSDL生成还是JAX WS中的任何其他地方?我不应该修改我的皂请求。
SOAP请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfa="http://cfa.ni.ctl.com/" xmlns:bim="http://www.qwest.com/XMLSchema/BIM" xmlns:xs="http://www.qwest.com/XMLSchema">
<soapenv:Header/>
<soapenv:Body>
<cfa:getCFACircuit>
<!--Optional:-->
<CFACircuitRequest>
<bim:RequestId>123</bim:RequestId>
<bim:WebServiceName>123</bim:WebServiceName>
<bim:RequestPurpose>123</bim:RequestPurpose>
<bim:AuthorizationInfo>
<!--Optional:-->
<bim:ApplicationId>123</bim:ApplicationId>
<!--Optional:-->
<bim:UserId>123</bim:UserId>
<!--Optional:-->
<bim:Userid>123</bim:Userid>
<bim:Password>123</bim:Password>
</bim:AuthorizationInfo>
<!--Optional:-->
<bim:TargetSchemaVersionUsed>
<!--Optional:-->
<bim:TargetXSDName>123</bim:TargetXSDName>
<!--Optional:-->
<bim:MajorVersionNumber>123</bim:MajorVersionNumber>
<!--Optional:-->
<bim:MinorVersionNumber>123</bim:MinorVersionNumber>
</bim:TargetSchemaVersionUsed>
<!--Optional:-->
<bim:TimeOutSecond>123</bim:TimeOutSecond>
<!--Optional:-->
<bim:SendTimeStamp>123</bim:SendTimeStamp>
<cfa:InputData>
<cfa:CCNA>123</cfa:CCNA>
<xs:CableKey>
<!--Optional:-->
<xs:LowUnit>123</xs:LowUnit>
<!--Optional:-->
<xs:HighUnit>123</xs:HighUnit>
<!--Optional:-->
<xs:CableId>123</xs:CableId>
<!--Optional:-->
<xs:CableSubPath>123</xs:CableSubPath>
<!--Optional:-->
<xs:CLLIALocation>123</xs:CLLIALocation>
<!--Optional:-->
<xs:CLLIZLocation>123</xs:CLLIZLocation>
</xs:CableKey>
</cfa:InputData>
</CFACircuitRequest>
</cfa:getCFACircuit>
</soapenv:Body>
</soapenv:Envelope>
服务器上输入数据的XML注释为:
@XmlElement(name = “InputData”, namespace = “http://www.qwest.com/XMLSchema”, required = true)
Ajay,你的注释是:
@XmlElement(name = “InputData”, namespace = “http://www.qwest.com/XMLSchema”, required = true)
但是在XML请求中,元素InputData属于名称空间“http://cfa.ni.ctl.com/”。
您需要修复注释。
我猜您的XML请求不正确。请先尝试根据XML模式验证您的请求。
使用哪个命名空间前缀并不重要,但需要确保 XML 元素与相应的命名空间匹配。
我在Visual Studio中从第三方WSDL添加了一个服务引用,但它不是创建代理类,而是创建一个具有空名称空间的文件: WSDL地址是http://wwwh.cnj.jus.br/sgt/sgt_ws.php?WSDL 我该怎么修好它? 更新: 我运行了命令
我有一个JAX-WS注释的Web服务,当我将其部署到WildFly 8.1.0 Final中时,我有如下内容: 当我想要这样的东西时: 因此,基本上,我希望WildFly/JAX-WS将一些类型放在一个单独的XSD模式文件中,而不是仅仅在WSDL文件中显示它们。 我可以通过一些注释或一些配置文件来执行此操作吗?
我有一个JAX-WS导入的WSDL客户机。当我尝试连接到webserviceendpoint时,JAX-WS客户端尝试加载WSDL。为什么? 我不想在我的项目中存储WSDL, 我不想再次从webservice URL加载WSDL? 问题: 有机会绕过这种行为吗? 如何在运行时添加webserviceendpointURL? 添加具有相同QName和端口名的端口失败,因为我无法添加相同的QName和
尝试基于两个唯一的字符串生成客户端Id。这应该与服务器中从相同的ID生成的UUID相同。 使用Javascript,它看起来像这样: 似乎找不到在Swift上生成这个的方法,NSUUID只能从无到有生成UUID 我正在寻找这样的东西: 编辑 例:
我试图找到一种使用Azure管理API、cmdlet或REST API创建Azure Servicebus命名空间的方法,以便可以为部署创建可重复的脚本。目前,我知道如何创建Servicebus命名空间的唯一方法是通过Azure门户。 是否有一种可编写脚本(c#,powershell)的方法来使用azure门户创建新的azure servicebus w/o? 这里有一些我已经读过的链接: Azu
如果有一个相当大的模式在多个Web服务中使用,那么我想将XSD编译与WSDL编译分开。在一个简化的示例中,一步编译可以: 编译xsd并使用生成的剧集文件不起作用: 那么如何在wsimport中使用预编译的模式呢? 附录:在另一个模式中使用该剧集可以工作,并避免新的编译 (d3.jar包含来自模式 3 模式 3.episode 的生成类作为 META-INF/太阳-jaxb.episode): 没有