问题标签 [java-metro-framework]
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 - 开发使用安全 METRO 2.1 Web 服务的 .NET 客户端
我有一个安全的 METRO 2.1 Web 服务,我想开发一个可以使用它的 .NET (3.5) 客户端。如果 WS 不安全,我已经成功了,但是一旦我得到
安全机制是Username Authentication with Symmetric Key
并且它正在使用Development Defaults
如何在 .NET 中设置安全性?我一直在阅读 METRO 指南,但我只发现示例的链接断开,并且指南没有让我通过。我用 成功生成了一个代理类svcutil
,但我不知道如何使用它。
svcutil 警告:
警告 1 自定义工具警告:已为端点导入安全策略。安全策略包含无法在 Windows Communication Foundation 配置中表示的要求。在生成的配置文件中查找有关 SecurityBindingElement 参数的注释。使用代码创建正确的绑定元素。配置文件中的绑定配置不安全。
警告 2 自定义工具警告:wsam:Addressing 元素需要 wsp:Policy 子元素,但没有子元素。
编辑
我已经非常接近解决这个问题(我认为)。我导出了默认的 GlassFish 证书keytool.exe
:
我server.cer
在客户端使用证书:
问题这会导致MessageSecurityException
,因为端点的预期 DNS 身份是localhost
,但是端点具有xwssecurityserver
。我可以将其设置为localhost
/xwssecurityserver
手动吗?
任何帮助,将不胜感激!在此先感谢,丹尼尔
java - 部署后 JMX MBean 不可见
环境NetBeans 6.9.1、GlassFish 3.1、METRO 2.1
我想列出可用的 Web 服务,所以我在 JMX MBeanServer 中查询*:type=WSEndpoint,*
. 问题是,部署后只有大约 56 个 Mbean,并且WSEndpoint
没有注册 bean。如果我使用 JMXterm 连接,MBean 计数会上升到 ~380,并且所有WSEndpoint
bean 都是可见的。在 JConsole 中,我没有看到任何folder
,但是在运行 JMXterm 之后我看到了。
即使我调用 Web 服务,MBean 仍然未注册。METRO监控默认是开启的,我就这样离开了;部署后INFO: Metro monitoring rootname successfully set to: amx:pp=/mon/server-mon[server],type=WSEndpoint,name=...
显示控制台消息。
JMXterm 做了什么以使所有 MBean 都可见?它会调用任何方法MBeanServer
吗?是否有任何解决方案,以便我可以WSEndpoint
在部署后立即访问 bean?
hibernate - 使用相同数据库驻留在同一服务器上的跨 Web 服务的原子事务
我们的架构包括基于 JAX-WS 规范开发的 Web 服务,使用
地铁。这些服务作为单独的战争部署在单个 Glass Fish App 服务器上
文件。所有 Web 服务在内部使用单个数据库。数据访问层使用 Hibernate 实现,Spring 用于在服务内部实现事务。现在,当我们想做一个跨越多个 Web 服务的事务时,有哪些方法是可能的?
- 我们需要使用 JTA 还是可以避免使用 JTA?
- 我们是否需要使用 Metro 支持的 WS-AtomicTransaction 规范?
java - 如何为 Java Metro WS 创建自定义 Tube
我想创建自己的 Custom Tube 并将其放入 Java Metro WS Stack,但到目前为止我还没有运气。我没有找到任何关于 Metro 的完整文档,尤其是关于这部分的文档(官方网站上的 Metro 文档非常无用)。
到目前为止,我发现我需要创建一个实现 的 Tube AbstractFilterTubeImpl
,然后我需要一个TubelineAssembler
, 和一个工厂 ( TubelineAssemblerFactory
)。但是,在创建这些类之后,我不知道如何处理它们,如何将其插入 WS Stack。我已经阅读了很多博客和网站,其中一些使用了使用 TubeFactory 的旧方法(但这个类甚至不再存在),并且没有一个清楚地解释此时要做什么。
他们中的一些人提到了一个META-INF/services
文件夹,我必须在其中创建一个配置文件,但我不确定该文件夹应该在哪里,配置文件必须包含的确切内容(发现相反的博客文章),以及它是如何会被认可。我正在使用带有 Glassfish 3 的 Netbeans IDE 6.9.1。
任何帮助将不胜感激。谢谢!
java - 在不调用 Web 服务的情况下获取肥皂消息
使用 JAX-WS 规范的 Glassfish Metro 实现,是否可以在不实际调用操作的情况下为特定操作生成 SOAP 请求消息。类似于 SOAPUI 仅基于 WSDL 生成示例 SOAP 消息的能力,我想生成它以提供操作参数。
谢谢。
web-services - 使用 Metro 代替 Weblogic Webservices Stack
我正在尝试使用 Metro Web 服务来代替 weblogic.jar 中包含的默认 Weblogic webservices 堆栈。
当试图让 WebLogic 先使用 Metro 堆栈时,问题就出现了。
到目前为止我采取的步骤是在项目中引用 webservices-rt.jar。到目前为止,我在部署 ear 文件时遇到此错误....
原因:java.lang.LinkageError:加载器约束违规:解析字段“DATETIME”时,引用类、javax/xml/datatype/DatatypeConstants 和类加载器的类加载器(weblogic/utils/classloaders/ChangeAwareClassLoader 的实例) (实例)对于该字段的解析类型 javax/xml/namespace/QName,该类型具有不同的 Class 对象
更新:
最近的错误是:“类 javax.xml.namespace.QName 既没有 @WebSerivce 也没有 @WebServiceProvider”奇怪的是它正在 QName 对象上寻找 @Webservice:
- Application-Weblogic.xml 的内容
<wls:prefer-application-packages>
<wls:package-name>com.ctc.</wls:package-name>
<wls:package-name>com.sun.xml.</wls:package-name>
<wls:package-name>com.sun.istack.</wls:package-name>
<wls:package-name>com.sun.msv.datatype.</wls:package-name>
<wls:package-name>com.sun.msv.driver.</wls:package-name>
<wls:package-name>com.sun.msv.grammar.</wls:package-name>
<wls:package-name>com.sun.msv.reader.</wls:package-name>
<wls:package-name>com.sun.msv.relaxns.</wls:package-name>
<wls:package-name>com.sun.msv.scanner.</wls:package-name>
<wls:package-name>com.sun.msv.util.</wls:package-name>
<wls:package-name>com.sun.msv.verifier.</wls:package-name>
<wls:package-name>com.sun.msv.writer.</wls:package-name>
<wls:package-name>com.sun.org.apache.xml.internal.</wls:package-name>
<wls:package-name>com.sun.wsit.</wls:package-name>
<wls:package-name>javax.jws.</wls:package-name>
<wls:package-name>javax.xml.bind.</wls:package-name>
<wls:package-name>javax.xml.soap.</wls:package-name>
<wls:package-name>javax.xml.stream.</wls:package-name>
<wls:package-name>javax.xml.ws.</wls:package-name>
<wls:package-name>javax.xml.activation.</wls:package-name>
<wls:package-name>javax.xml.annotation.</wls:package-name>
<wls:package-name>javax.xml.mail.</wls:package-name>
<wls:package-name>javax.xml.security.</wls:package-name>
<wls:package-name>javax.xml.registry.</wls:package-name>
<wls:package-name>javax.xml.rpc.</wls:package-name>
<wls:package-name>javax.xml.crypto.</wls:package-name>
<wls:package-name>javanet.staxutils.</wls:package-name>
<wls:package-name>jp.gr.xml.</wls:package-name>
<wls:package-name>org.codehaus.stax2.</wls:package-name>
<wls:package-name>org.glassfish.gmbal.</wls:package-name>
<wls:package-name>org.iso_relax.</wls:package-name>
<wls:package-name>org.jcp.xml.dsig.</wls:package-name>
<wls:package-name>org.jvnet.</wls:package-name>
<wls:package-name>org.relaxng.</wls:package-name>
<wls:package-name>antlr.</wls:package-name>
<wls:package-name>org.apache.commons.lang.</wls:package-name>
</wls:prefer-application-packages>
java - 如何在 Spring 的 @Transactional 中使用 @Resource WebServiceContext 注入
我有一个 Metro jax-ws 网络服务,看起来或多或少像这样:
始终为空WebServiceContext
。但是,如果我删除@Transactional
WebServiceContext 被注入。
有人知道解决方法吗?
谢谢。
java - 如何将 JAVAX-WS 端点绑定更改为 SOAP 1.2?
我正在发布一个测试 WS 实现,Endpoint.publish()
用于在 Visual Studio 中使用。根据文档,默认 SOAP 绑定是1.1
并且可以更改绑定,但我无法具体弄清楚如何将绑定更改为1.2
.
任何帮助表示赞赏!
java - 使用 JAXB 保持干燥
我正在开发一些必须以下列格式序列化为 XML 的 Java 类:
一开始,Foo.java
看起来像这样:
Bar.java
猜测什么和Baz.java
可能是什么样子并不需要太多的想象力。int
这些是(在本例中) 、、String
和的非常简单的包装类boolean
。到目前为止,一切都很好。写完第九轮
我想:“嘿,我知道如何解决这个问题——我只需要一层抽象!” 介绍Wrapper<T>
:
现在,要实现Foo
,我需要做的就是扩展Wrapper
,实现我需要的工厂方法:
并添加@XmlSeeAlso({... Foo.class ...})
toWrapper
的声明。
- 优点:这要好得多。
- 缺点:JAXB 不会序列化这些对象。
由于在 JAXB 内部深处某个地方抛出的任何调用JAXBContext.getInstance(Wrapper.class)
或失败:JAXBContext.getInstance(Foo.class)
NullPointerException
我已经尝试将我的 JAXB 实现从 Metro 切换到 MOXy(并且我确实检查了实现是否发生了变化)但是 MOXy 抛出了类似的 NPE:
有没有办法在最小化样板文件和保持DRY的同时生成所需的 XML ?
java - 有没有办法通过注释在 Metro 中实现 ws-security?
由于我不想创建很多 wsit 文件来启用安全性(消息加密和用户身份验证)并且我不想使用 netbeans 在那里使用 Metro 插件,我想问是否有任何简单的方法可以通过注释实现ws-security?或者除了soap ui之外还有什么eclipse插件,其实用处不大,可以创建这样的wsit文件?
提前致谢。