小编dru*_*lik的帖子

如何从使用Spring部署的JAX-WS Web服务WSDL更改自动生成的soap:地址

我有一个使用来自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.

有任何想法吗?

非常感谢你.

java spring web-services jax-ws

10
推荐指数
1
解决办法
1万
查看次数

记录jax-ws http请求和响应

我需要在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)

java logging jax-ws

6
推荐指数
1
解决办法
1万
查看次数

具有各种模块的项目的Maven surefire测试结果

我有一个包含各种子模块的父pom项目.我想获得单元测试结果的报告,但是使用surfire插件,我得到每个模块的独立结果.

我的意思是,如果我执行:

mvn surefire-report:report
Run Code Online (Sandbox Code Playgroud)

从父pom所在的父目录,它为每个子项目创建一个surefire-report.html,但我想要的只是一个html与所有子项目的结果.

有没有办法自动实现这一目标?使用surefire或其他一些插件.

junit report surefire maven

6
推荐指数
1
解决办法
3011
查看次数

标签 统计

java ×2

jax-ws ×2

junit ×1

logging ×1

maven ×1

report ×1

spring ×1

surefire ×1

web-services ×1