我正在构建SOAP WebService。 在这个SOAP Web服务中,我想将XML请求保存到文件中。
要做到这一点,我知道我可以简单地使用链式处理程序,但是,我需要在请求本身中不传输的其他信息,而是在WebService中计算,这就是为什么我觉得我应该在我的WebService中检索MessageContext。
希望我可以使用@Resource获取WebServiceContext并检索Message Context。但是,我似乎无法将MessageContext转换为我想要的类。这是我的终端的代码:
import org.apache.cxf.jaxws.context.WrappedMessageContext;
[...]
public MyClass [...] {
[...]
@Resource
WebServiceContext wsContext;
public WSResponse lister(SecurityInfo security, MessageId messageID, RequestBody body) {
if(wsContext.getMessageContext() instanceof WrappedMessageContext) {
//The code never goes in this
}
//However this :
wsContext.getMessageContext().getClass().toString(); //equals this : "org.apache.cxf.jaxws.context.WrappedMessageContext"
//And this is where the problem is
wsContext.getMessageContext().getClass().getClassLoader().toString(); // is : ModuleClassLoader for Module "org.apache.cxf.impl:main" [...]
this.getClass().getClassLoader().toString(); // is : ModuleClassLoader for Module "deployment.my_ws_module.war:main" [...]
}
我5天前甚至都不知道CXF,并且昨天发现了类加载器,但我想我有点理解为什么会发生这种情况,但是,当谈到解决它时,我很无能为力。 ..
值得注意的是: 该项目使用Maven,Spring,CXF和Java 1.8