【问题标题】:Is there any way to implement ws-security in metro via annotations?有没有办法通过注释在 Metro 中实现 ws-security?
【发布时间】:2011-05-11 13:51:50
【问题描述】:
由于我不想创建很多 wsit 文件来启用安全性(消息加密和用户身份验证)并且我不想使用 netbeans 在那里使用 Metro 插件,所以我想问一下是否有通过注释实现 ws-security 的简单方法?
或者除了soap ui之外还有什么eclipse插件,其实用处不大,可以创建这样的wsit文件?
提前致谢。
【问题讨论】:
标签:
java
jakarta-ee
annotations
jax-ws
java-metro-framework
【解决方案1】:
根据this post,Metro 不以编程方式支持 ws-policy。不过那是 2009 年,所以我不知道情况是否仍然如此。
如果您不想使用 wsit 文件,Metro 也可以直接从 WSDL 获取策略(也就是说,如果您在 WSDL 中有策略)。
这就是我在 Metro 生成的服务类中所做的。它直接从我的类路径中的 WSDL 加载策略,并将在运行时应用所有策略,前提是您已在应用程序服务器中安装 Metro 并且在您的项目中没有任何冲突的依赖项(这个有点对我来说很麻烦,我的一些依赖项将 jaxws-rt 作为依赖项,这可能会破坏 Metros 策略解析)。
private final static URL CUSTOMERSERVICE_WSDL_LOCATION;
static {
CUSTOMERSERVICE_WSDL_LOCATION =
CustomerService.class.getClassLoader().getResource("Customer/CustomerService.wsdl");
}
public CustomerService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}