问题标签 [jbossws]
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 - 启用了 jmxremote 的 JBoss 4.2.2 上的 JBossWS 中的 NPE
我正在尝试设置 JBoss 4.2.2 和 JConsole 进行远程监控。根据我在网上找到的许多操作方法,您需要通过在 run.conf 中设置以下选项来启用 jmxremote。(我意识到其他两个选项禁用身份验证)
这导致以下异常:
我的应用程序使用 JWS,根据这个错误:
https://jira.jboss.org/jira/browse/JBWS-1943
建议这种解决方法:
我已经尝试过,但是然后在尝试在我的耳朵中部署一个 sar 文件时抛出以下异常,该文件仅包含为我的应用程序需要的几个计划作业实现 Schedulable 的类:
关于从这里去哪里有什么建议吗?
编辑:
我还尝试了以下变体:
我正在使用 JDK 1.6.0_01-b06
java - java.util.List 是一个接口,JAXB 不能处理接口
尝试部署我的应用程序时,我似乎遇到了以下异常:
我的代码运行良好,直到我将返回类型从 List 更改为 List<List<RelationCanonical>>
这是部分网络服务:
我也尝试过删除@SOAPBinding 并尝试默认值,但结果相同。感谢任何帮助
更新
我想说明一些事情。我把所有的List都改成了ArrayList,然后编译了。我之所以说已编译但无法正常工作是因为它的行为很奇怪。我得到一个类型的对象:RelationServiceStub.ArrayList,但该对象没有 get 方法或也不像 List 一样。我也尝试将其转换为列表,但没有奏效。
请注意,这是在我使用了 Axis 2 和 wsdl2java 之后,所以是的,现在它可以编译了,但我不知道如何获取数据。
security - 在 JBossWS 中使用用户名令牌时,如何从内存中删除密码?
我将 JBoss Web 服务用于支付服务应用程序。在某些时候,我需要对支付服务提供商进行远程 SOAP 调用,并且需要使用用户名令牌进行身份验证。
我知道如何使用 JBossWS 执行此操作的唯一方法是这样的:
但这里的问题是“changeme”密码现在作为字符串对象在内存中,我无法控制何时(如果有的话)它会被垃圾收集。如果攻击者此时转储内存,他可以找到凭据。
是否有另一种使用 JBossWS 进行安全 SOAP 调用的方法,我可以在其中控制密码在内存中的保留时间?
web-services - 如何在基于非 EJB 的 WebService 中注入 EntityManager?
标题说明了一切:我有一个简单的 WebService
当然WebService也是在web.xml中定义的,调用WSDL就可以了,客户端可以调用webmemethods等等。
如您所见,我希望它能够注入 EntityManager 和 UserTransaction,我需要它来创建进一步的 DAO。但是,两者始终为空。
WebService 不是基于 EJB,有没有办法检索这些对象?
容器是 JBoss 5.0GA
java - WebService/SLSB 是 JBossWS 中的单例吗?
我在一个类上使用 JAX-WS“WebService”注释将其“WebMethod”作为 Web 服务公开。该类表示为处理对“/MyService”的调用的 servlet 类。
作为本质上的一个 servlet,我希望这个类的一个实例被创建一次并且基本上是一个单例。我在此类的构造函数中有代码来创建一个 EntityManagerFactory 以分配给成员变量。我所看到的是,每个客户端对 Web 服务的请求都会调用构造函数。情况不妙。
有谁知道这里发生了什么?有谁明白我想问什么?:)
谢谢。
java - 如何添加 WSDL以编程方式限制?
在我工作的地方,我们制定了一项政策,规定我们应该尝试“自下而上”(代码优先)构建 Web 服务。
这样做时,如何在我的 XSD
WSDL 元素中添加限制?例如,在下面:<types
>
我的 WSDL 中的输出如下:
我想在“guest”字符串中添加minLength
和maxLength
限制。这是否可以通过代码而不是直接编辑 WSDL 来完成?
我知道我可以使用自定义类并使用@XmlElement
或@XmlAttribute
获取一些自定义项(名称、必需等)来注释我的字段,但没有特定于字符串(长度等)之类的东西;是否可以修改/扩展这些注释以添加对长度或模式等内容的支持?
谢谢。
java - wsimport多个生成的wsdl
我正在使用 jbossws(带有 jax-ws)来提供从带注释的 POJO 生成的 3 个 Web 服务。这 3 个 Web 服务共享一些数据类,也有一个共同的方法 ( ping
)。它们都驻留在同一个 java 包中 ( namespace
)
这 3 个 WSDL 文件是jbossws
在部署时自动生成的。
现在我想使用 wsimport 生成客户端代码。
当我一个一个地导入 WSDL 文件时,尽管有一些怪癖(ObjectFactory.java
被覆盖,@XmlSeeAlso
没有列出所有子类)
当我一次导入 3 个 WSDL 文件时,该工具开始抱怨重复定义(例如[ERROR] 'ping' is already defined
)并且不生成任何内容。
我曾尝试更改命名空间,但这会导致客户端出现多个包,并可能导致某些类的重复。
如何为 3 个 WSDL 文件生成代码,从而避免重复代码、正确@XmlSeeAlso
的注释,最好是正确的ObjectFactory
?
web-services - 在 JBoss 上下载 Web 服务消息期间,如何将附件保存在临时文件中,而不是内存中
我在使用 JBoss WS Native Stack 的 JBoss 4.2.3 和 5.1 上遇到以下问题。Web 服务正在接收大量大型附件。当我的服务器接收这些附件时,它们会存储在内存中,直到整个消息被传输和解析。
结果,我很快就耗尽了内存(由于大量客户端)。
我希望 JBossWS 将附件存储在某个临时文件中,而不是内存中。
JBoss 中是否有任何选项可以设置附件保存在文件中而不是 RAM 中的阈值?Axis 2 有这样的选项(参见http://ws.apache.org/axis2/1_1_1/mtom-guide.html的最后一章),但我在 JBossWS 中找不到类似的东西。JBoss 的 Apache CXF 或 Metro Web 服务实施是否有这样的选择?
java - 如何扩展使用 WebFault 注释的 wsimport 生成的异常?
我正在从现有的 WSDL 用 Java 构建 Web 服务。该wsimport
工具已生成绑定到服务模式中的元素的所有 Java 类。特别是,故障声明产生以下类:
现在我想扩展这个类,所以我可以添加更多行为:
当我现在从我的应用程序中抛出实例时MyServiceFault
,我希望这些错误能够在 SOAP 答案中正确序列化为 XML。但相反,我得到了这样的东西:
也就是说,我完全错过了 faultInfo 元素。我的 SOAP 堆栈将MyServiceFault
其视为任何其他异常,而不是表示服务故障的异常。
我首先认为这是因为@WebFault
注释不是由 继承的MyServiceFault
,但是我在显式添加此注释后再次尝试,但没有成功。
知道我在这里做错了什么吗?
java - 是否可以使用 JAX WS Dispatch API 处理用户定义的异常?
我正在使用以下代码片段执行动态 Web 服务调用:
调用工作完美,除非我在服务上添加用户定义的异常(基本的 UserException 扩展 java.lang.Exception)。
首先我得到:
javax.xml.bind.UnmarshalException:意外元素(uri:“ http://schemas.xmlsoap.org/soap/envelope/ ”,本地:“故障”)。预期的元素是 <{ http://my.namespace/ }myMethod>,<{ http://my.namespace/ }myResponse>
然后我将 UserException_Exception JAX-WS 生成的类型添加到我的 JAXB 上下文中,然后得到:
原因:com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 个 IllegalAnnotationExceptions java.lang.StackTraceElement 没有无参数默认构造函数。此问题与以下位置有关:在 java.lang.StackTraceElement at public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace() at java.lang.Throwable at java.lang.Exception
我发现唯一可用的解决方案是:
- 直接分派 Soap 消息并直接处理 Soap 故障(这是 Jboss JAX-WS 实现使用服务接口执行标准 JAX-WS 调用的方式)。这对我来说不是一个可用的解决方案,我想使用高级实现(我越接近 Soap 消息,我的代码就越不动态)
- 使用 JAXBRIContext.ANNOTATION_READER,它是特定于实现的,对我来说不是可用的解决方案,以便将注释 java.lang.Exception 注释为 @XmlTransient
使用 JAX-WS 生成的标准客户端存根和使用诸如 Soap UI 之类的工具时,具有用户定义异常的服务可以很好地执行。当我在 JAXB 上下文中没有用户定义的异常工件时,以及在调用期间当我在 JAXB 上下文中添加那些不兼容 JAXB 的工件时,消息的反序列化会出现问题。
我在 Jboss 4.2.3.GA 中使用 Jboss WS webservice 堆栈
欢迎任何优雅的解决这个问题的方法!