我正在运行jboss-4.2.1.GA来生成WS请求。
我在JWSDP-2.0 / JAXRPC的帮助下创建了WS客户端。我已将客户端部署到Jboss,我现在正在尝试发送请求。
当我尝试初始化客户端服务时:javax.xml.rpc.Service service = servicefactory.createService(new URL(wsdlURL), serviceQN)
,Jboss开始抱怨。
Jboss生成的错误是:
错误[JBossXSErrorHandler] JBossWS_targetnamespace1.com7796329154971783225.xsd [域:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve.4.2]::Message=src-resolve.4.2: 解析组件时出错 'tns2:SimpleSerialiser'。它是 检测到'tns2:SimpleSerialiser' 在命名空间中 'http://targetnamespace2.com',但是 此命名空间中的组件不是 可从架构文档中引用 '文件:/home/jbossPath/jboss-4.2.1.GA/server/default/tmp/jbossws/JBossWS_targetnamespace1.com7796329154971783225.xsd'。 如果这是不正确的命名空间, 也许是前缀 'tns2:SimpleSerialiser'需要 改变。如果这是正确的 命名空间,然后是合适的 应该添加'import'标签 '文件:/home/jbossPath/mobaq/jboss-4.2.1.GA/server/default/tmp/jbossws/JBossWS_targetnamespace1.com7796329154971783225.xsd'
随后发出警告:
WARN [WSDL11Reader]编码样式 'http://schemas.xmlsoap.org/soap/encoding/' 不支持: {瓮:命名空间} doTask
最后,显示以下错误:
错误[STDERR] org.jboss.ws.WSException:不能 获取java类型映射: {瓮:命名空间} ArrayOf_tns2_TagType 错误[STDERR] at org.jboss.ws.metadata.builder.jaxrpc.JAXRPCMetaDataBuilder.buildInputParameter(JAXRPCMetaDataBuilder.java:266) ... ...
我知道过去曾在community.jboss.org上发布过similar error ,但其他任务不同。我不确定提供的补丁是否能解决我的问题,我不知道如何实现提供的补丁。
除此之外,我发现有人遇到类似问题:JAX-RPC in JBoss 4.2.3但建议的解决方案对我不起作用。
我也知道JbossWS不支持RPC / Encoded,但我使用jboss作为我的解决方案。 有没有办法让我解决这个问题,难道我不能让Jboss创建客户端服务来发送请求吗?我不确定是否有可能请求RPC / Literal WSDL文件,这就是我要问的原因。
任何建议都将不胜感激。
答案 0 :(得分:1)
http://schemas.xmlsoap.org/soap/encoding/是非常古老的Web服务堆栈使用的遗留样式(非常糟糕,even Microsoft recommend against it)。它存在严重缺陷,因此被排除在大多数现代Java Web服务堆栈实现的WS-I interoperability spec之外。
我知道处理这些旧编码的唯一java堆栈是Axis 1,它本身存在严重缺陷,但可能是您唯一的选择。您应该能够从JBoss内部将Axis作为客户端运行。
答案 1 :(得分:0)
我终于通过实施JAX-RPC in JBoss 4.2.3帖子建议的解决方案解决了这个问题:
要跳转到追逐,我只需将Axis 1.4中的以下JAR放入我的EAR的lib目录中: axis.jar,axit-ant.jar,commons-discovery-0.2.jar,jaxrpc.jar,saaj.jar,wsdl4j-1.5.1.jar
我正在做的是将上面的jar放在我自己的WS Client jar文件中,这就是为什么它不起作用。解决方案在我面前,黑色和白色,我没有正确实现它。这是一个问题,因为太长时间地关注某个问题。
我是个笨蛋。