我使用JBoss 4.2.3.GA. 在之前的任务中,我使用了JBoss支持的基本加密机制(WS-Security).即我使用密钥库,信任库文件进行加密和签名消息.通常(以标准方式)在jboss-wsse-*文件中定义了必须在加密过程中使用的密钥别名.我在Action book中使用了JBoss的ws安全配置.
没关系.加密工作正常.
但在我当前的任务中,我需要手动和动态地为键指定别名.任务描述:
我有几个档案.在每个配置文件中,可以是必须用于加密消息的公钥的别名别名.
我有密钥库包含服务器的私钥/公钥和客户端的公钥,它们将向服务器发送消息
我需要使用此别名指定的公钥从配置文件获取别名并加密消息(在客户端).
所以问题是关于:
我只是不知道如何开始,使用什么框架,甚至有必要使用外部(非JBoss)框架...
当我从J2SE(桌面)应用程序访问它时,我的Web服务工作正常.要访问此服务,我会遵循:
然后我使用生成的类创建服务并运行wsdl操作之一.它看起来像这样:
MyWebServiceService webService = new MyWebServiceService();
MyWebService port = webService.getMyWebServicePort();
webService.run( "XYZ");
我很难过,当我在一个独立的应用程序中使用它时它工作得很好.但是......当我尝试以相同的方式从servlet-client访问web服务时,使用生成的存根,我得到以下错误:
java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.bind.api.JAXBRIContext
org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeAccessors(EndpointMetaData.java:686)
org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(EndpointMetaData.java:567)
org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointMetaData.java:553)
org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(JAXWSClientMetaDataBuilder.java:314)
org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPortInternal(ServiceDelegateImpl.java:271)
org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:202)
javax.xml.ws.Service.getPort(Service.java:143...
Run Code Online (Sandbox Code Playgroud)
我搜索谷歌很长时间,但没有找到任何有用的主题.一些主题显示了从servlet访问Web服务的示例,但遗憾的是我无法做到这一点......(并且不知道是什么原因造成的.
应用服务器:jboss 4.2.3GA
是否可以从servlet连接Web服务?怎么样?
我已经尝试过使用@WebServiceRef注释,但似乎web容器无法注入web服务存根.我认为容器本身不能这样做,因为存根类已经由wsimport工具生成,并且它使用这些类来访问web服务.
使用以下命令生成存根类:
wsimport -keep -p com.myhost.ws http://www.myhost.com/services/MyWebService?wsdl
Run Code Online (Sandbox Code Playgroud) 早上.
我需要在hibernate实体中添加索引.据我所知,可以使用@Index注释来指定单独列的索引,但我需要一个实体的几个字段的索引.
我用谷歌搜索并找到了jboss注释@Table,它允许这样做(按照规范).但是(我不知道为什么)这个功能不起作用.可能是jboss版本低于必要,或者我可能不明白如何使用这个注释,但是...复杂索引没有创建.
为什么不能创建索引?
jboss版本4.2.3.GA
实体示例:
package somepackage;
import org.hibernate.annotations.Index;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@org.hibernate.annotations.Table(appliesTo = House.TABLE_NAME,
indexes = {
@Index(name = "IDX_XDN_DFN",
columnNames = {House.XDN, House.DFN}
)
}
)
public class House {
public final static String TABLE_NAME = "house";
public final static String XDN = "xdn";
public final static String DFN = "dfn";
@Id
@GeneratedValue
private long Id;
@Column(name = XDN)
private long xdn;
@Column(name = DFN)
private long dfn;
@Column
private String …Run Code Online (Sandbox Code Playgroud) 我正在使用JBoss 4.3.2.GA
我已经为我的MBean服务添加了方法.方法在签名中有几个参数.它工作正常,但我想要更多.
问题:当我在jmx-console中看到方法签名时,我不知道每个输入字段的含义,因为jmx-console不显示参数名称,只显示值的输入字段.
是否有能力添加每个参数的描述(在Java代码中,而不是xml)允许在JBOSS的jmx-console中显示此描述?
我试过使用Spring注释:@ManagedOperation至少添加方法描述但没有结果(描述没有在jmx-console中显示).
可能有人已经解决了这个问题......
我有一个带有方法签名的Web服务,如下所示:
public RetType doIt(String description){
return null;
}
Run Code Online (Sandbox Code Playgroud)
在生成wsdl之后,我看到(在wsdl中)方法doIt有参数名称arg0.在代码优先方法中是否有一种方法可以像在Java类方法签名中那样在wsdl中指定参数名称?