我有一个使用来自WSDL的wsimport生成的webservice实现.此服务部署在Spring Webapp中的Tomcat服务器中.spring配置文件(只有webservice部分)是这样的
<wss:binding url="/fooService">
<wss:service>
<ws:service bean="#fooService">
</wss:service>
</wss:binding>
Run Code Online (Sandbox Code Playgroud)
当我在tomcat中部署这个webapp时,如果我去的话,我可以获得WSDL
http://localhost:8080/foo/fooService?wsdl
Run Code Online (Sandbox Code Playgroud)
和wsdl soap:address属性是这样的:
<service name="FooService">
<port name="FooService" binding="tns:FooServiceBinding">
<soap:address location="http://localhost:8080/foo/fooService"/>
</port>
</service>
Run Code Online (Sandbox Code Playgroud)
而就目前而言,一切都好.
问题是在生产中,我们有一个Apache Web服务器,这个服务器将请求重定向到Tomcat.它也有效,但是当我们获得WSDL时,soap:地址仍然是localhost:8080,我们需要将它作为webservice的公共URL.
有任何想法吗?
非常感谢你.
我需要在JAX-WS WebService调用中记录完整的http请求和响应.对于请求,我需要请求标头和正文以及响应,响应标头和正文.
经过一番研究,我发现我可以通过该属性获取此信息:
-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
Run Code Online (Sandbox Code Playgroud)
并显示我需要的信息,但它将其转储到控制台,我需要将其存储在具有内部请求ID的数据库中.
我试图实现一个处理程序:
public class LoggingHandler implements SOAPHandler<SOAPMessageContext> {
@Override
public boolean handleMessage(SOAPMessageContext context) {
Boolean outbound = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (outbound) {
System.out.println("SOAP outbound!!!!!");
Map<String, List<String>> responseHeaders = (Map<String, List<String>>) context
.get(SOAPMessageContext.HTTP_RESPONSE_HEADERS);
try {
String headers = getHeaders(responseHeaders);
System.out.println(headers);
String body = getBody(context.getMessage());
System.out.println(body);
} catch (Exception ex) {
// TODO: What do I have to do in this case?
}
} else {
System.out.println("SOAP inbound!!!!!");
Map<String, List<String>> requestHeaders = (Map<String, List<String>>) context
.get(SOAPMessageContext.HTTP_REQUEST_HEADERS);
try { …Run Code Online (Sandbox Code Playgroud) 我有一个包含各种子模块的父pom项目.我想获得单元测试结果的报告,但是使用surfire插件,我得到每个模块的独立结果.
我的意思是,如果我执行:
mvn surefire-report:report
Run Code Online (Sandbox Code Playgroud)
从父pom所在的父目录,它为每个子项目创建一个surefire-report.html,但我想要的只是一个html与所有子项目的结果.
有没有办法自动实现这一目标?使用surefire或其他一些插件.