问题标签 [jax-rpc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 jboss 使用 Web 服务
有人可以为我指出一个很好的分步教程来使用 Java 中已经运行的 Web 服务吗?
PS:我尝试使用创建类wsconsume
,但它哭泣
[ERROR] rpc/encoded wsdls are not supported in JAXWS 2.0.
(我的网络服务是 rpc/encoded)
如果我可以完全手动使用 Web 服务(不使用向导),并且了解它是如何工作的,那么我会很高兴。
谢谢!
更新:我发现 rpc web 服务不是使用jbossws
, but来使用的jboss-jaxrpc
,它实现了 JAX-RPC 规范。我在这里找到了 JAX-RPC 指南,但我仍在寻找其他可以提供帮助的指南。
java - JAX-RPC Web 服务中的多态性
我有一个需要返回复杂多态值的 JAX-RPC (Java) Web 服务。更具体地说,类结构是这样的:
我的网络服务有一个返回测验的方法,它当然可能包含问题和部分,其中可能包含问题和其他部分,依此类推。但是,当我生成 WSDL 时,只有 Child 和 Quiz 进入。当我调用 Web 服务时,我得到一个带有正确数量子元素的 Quiz 元素,但它们都是 Child 元素,并且它们都是空的.
除了将 XML 作为字符串返回之外,有没有一种很好的方法来完成这项工作?
在有人问之前,由于我无法控制的情况,我不能使用 JAX-WS。
java - JAX-RPC、Spring Web 服务和 UnsupportedOperationCallException
我有一个试图使用 Spring 使用的 JAX-RPC Web 服务。这是我第一次使用 Spring 来使用 Web 服务,所以现在我只是想让它与 JAX-RPC Web 服务集成作为测试。
Web 服务中有几十个操作,但现在我只关心一个。以下是我在 Spring/client 端创建的接口:
这是我的 applicationContext.xml:
使用此配置JaxRpcPortProxyFactoryBean
,调用服务返回以下异常:
org.springframework.remoting.RemoteProxyFailureException:无效的 JAX-RPC 调用配置;嵌套异常是操作风格:不支持“rpc”
我从来没有完全理解 RPC 和文档式 Web 服务之间的区别。但是,我相信这个 Web 服务使用的是 RPC 样式 - 所以这个异常让我感到困惑。
其次,我对应该设置哪些属性感到困惑JaxRpcPortProxyFactoryBean
:
- 如果我设置了该
wsdlDocumentUrl
属性,我最终会收到 HTTP 401 错误,因为此 Web 服务位于 HTTP 基本身份验证之后,并且似乎 Spring 在获取 WSDL 时不使用用户名/密码属性。 - 如果我指定一个
PortInterface
属性(值为CompanyWebServiceInterfacePort
),那么我会得到一个不同的异常说明:无法为 JAX-RPC 端口初始化服务 [{ http://www.company.com/wdsl }CompanyWebServiceInterfacePort]; 嵌套异常是 WSDL 数据丢失,此操作不可用
换句话说,它告诉我缺少 WSDL——我无法设置它,因为 Spring 不会使用用户名/密码从服务器获取它!
我不确定这是否有任何意义,但本质上我不确定的是:
- 对于 JAX-RPC 服务,是否需要设置 PortInterface 属性?这是我应该走的路吗?
- 同样,Spring需要我设置
wsdlDocumentUrl
属性吗?如果是这样,有什么方法可以告诉 Spring 哪个 WSDL 并解决身份验证问题?
java - 如何为 Web 服务实例分配唯一 ID
我想在肥皂请求到达我的(GlassFish 2)服务器后立即为其分配一个唯一标识符。我想我为此使用了一个处理程序。
但是我在哪里可以存储这样的 ID?我需要它来关联来自多个类的日志行。为此,我需要某种上下文对象。任何人的想法?
java - JAX-RPC 处理程序发生异常
我有一些使用 JAX-RPC 构建的 SOAP Web 服务。这些工作正常。但是一旦我添加了一个处理程序,我就会得到一个异常。从 webservices.xml 中删除绑定后,一切都会再次正常运行。
奇怪的是,处理程序本身不包含在异常的堆栈跟踪中。我还注意到,在引发异常之前调用了处理程序的init
和方法。getHeaders
使用以下 xml 将处理程序添加到 webservices.xml:
处理程序本身只是一个存根,由 IDE 从接口生成,所以我不会包括整个实现:
这实际上在我的日志记录中生成了三个异常(具有完全相同的时间戳)。由于篇幅关系,我只包括一部分。
有人有解决这个问题的想法吗?
web-services - 以编程方式获取有关已配置 (webservices.xml) Web 服务处理程序的信息
在 Web 服务中,我在 webservices.xml(用于 IBM 运行时)和 server-config.wsdd(Axis 运行时)中配置为服务器(角色)的 GenericHandler 很少。假设处理程序是 A、B 和 C。
现在,当有入站呼叫时,A、B 和 C 将按预期被调用。
我基本上是在寻找一种方法来了解(以编程方式)为此 Web 服务配置的处理程序的数量,即在这种情况下为 3,以及其他一些处理程序特定的详细信息。
我正在调查通过以下方式获取 HandlerChain:
但我没有hChain
包含有关 A、B 或 C 的信息。是的,在这里我可以以编程方式添加处理程序,这些处理程序也被调用,但配置文件中没有已配置处理程序的信息。
有没有办法(以编程方式)获取有关已配置处理程序的详细信息?
感谢您的帮助。
java - How to set a connection timeout when using JAXRPC-RI web services client?
I'm working with a bit of a legacy component in which we interact with a SOAP web service (a technology which I absolutely, positively abhor) using some client code built using the JAXRPC-RI (reference implementation) library.
I'm interested in being able to set a timeout with the stubs so that in case the web services server does not reply within X seconds, the application isn't setting there forever waiting for a response.
I'm using to working with clients/stubs generated by Apache Axis, in which you can simply use org.apache.axis.client.Stub.setTimeout()
to set a timeout.
For the life of me I can't figure out how to set a timeout when using Stubs created with JAXRPC-RI:
- The port class I am instantiating extends
com.sun.xml.rpc.client.StubBase
and implementsjavax.xml.rpc.Stub
andcom.sun.xml.rpc.spi.runtime.StubBase
. - The JavaDocs for none of these classes mention any sort of timeout or method to do this.
- Trying code like
stub._setProperty("axis.connection.timeout", 1000);
results in an exception at runtime:javax.xml.rpc.JAXRPCException: Stub does not recognize property: axis.connection.timeout
Does anyone have any ideas on how to set/enforce a timeout when using a JAXRPC-RI client? Is it even possible?
java - Java Web 服务客户端:
我正在开发一个 Web 服务客户端,该客户端需要使用axis2 执行在tomcat 上公开的操作。客户端拥有所有需要的 wsdl 文件。我无法使用 netbeans 或 eclipse 静态导入它们,因为客户端需要在运行时发现 wsdl(这已经完成),然后以固定顺序执行它们......我该怎么办?我的程序能够获取那些 wsdl 文件,但我不知道如何处理它们......我应该使用什么:jax-ws?贾克斯-RPC??你能给我一个指南或其他东西的链接吗?
先感谢您
java - Java web 服务,xsd 日期而不是 dateTime
在使用 JAX-RPC 1.1 的 Java EE 1.4 中,我如何公开 Web 服务,因此 wsdl 具有复杂类型(人),其中人的属性之一是日期,在 WSDL/XSD 中仅显示为日期(例如生日)而不是 WSDL/XSD 中的 dateTime(不需要时间)?
我希望 wsdl 中引用的 xsd 有
代替
java.util.Calendar 和 java.util.Date 在 wsdl/xsd 中呈现时似乎都导致 xsd 数据类型为 dateTime。
我知道 java EE 1.4 没有像 java EE 5 这样的注释,但是有没有办法告诉 Web 服务使用 xs:date 数据类型?
java - Axis2 的 wsdl2java 在 RPC/Encoded 样式 Web 服务上失败
Axis2 有什么替代品吗?或者使其工作的方式(例如,不同的数据绑定)?
注意:Apache CXF 也失败了 :(