Spring 集成 Web 服务 405 错误

Spring Integration Web Service 405 Error

我被要求做一个原型,将使用 Spring 启用 JAX-WS 端点的工作网络服务转换为使用 Spring 集成,我一直在告诉尽可能使用 xml 配置。我剥离了应用程序,直到只剩下相关的 Web 服务元素,并且我根据需要创建了几个新的 spring xml 配置文件。虽然它编译正常,但当我部署到 JBoss 容器然后尝试使用 SoapUI 调用它时,我收到 HTTP 405 响应,并且 JBoss 控制台中没有任何内容表明请求是均匀的已收到,尽管服务器日志表明新网关和服务激活器已正确设置并且正在 运行ning。在我读过的任何 Spring 文档中,以及我从 Github 地址中提取的 none 代码示例中,我找不到任何远程相关的内容,将 Web 服务配置为 运行 在实际的 J2EE 服务器中。 我完全不知道我应该看什么。这是我的 spring 配置文件:

springContext-main.xml(由于 pre-existing 限制,我无法在真实应用程序中使用 applicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:annotation-config/>
    <!-- <bean class="com.bofa.ecom.intfacade.web.ApplicationConfiguration"/> -->

    <bean id="reconDao" class="com.bofa.ecom.intfacade.snf.recon.dao.ReconDAOImpl">
        <!-- <property name="dataSource" ref="dataSource"/> -->
    </bean>

    <bean id="reconServiceHelper" class="com.bofa.ecom.intfacade.snf.recon.service.helper.ReconServiceHelperImpl">
        <constructor-arg ref="reconDao"/>
    </bean>

    <import resource="classpath:/META-INF/spring/recon-ws.xml"/>

</beans>

recon-ws.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:sws="http://www.springframework.org/schema/web-services"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
       http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-1.5.xsd
       http://www.springframework.org/schema/web-services http://www.springframework.org/schema/web-services/web-services-2.0.xsd">

<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/>

    <import resource="classpath:/META-INF/spring/inbound-gateway-config.xml" />

<sws:dynamic-wsdl id="reconWsdl" portTypeName="reconGateway" locationUri="/reconService"
                      targetNamespace="http://intfacade.cpm.ecom.bofa.com/">
        <sws:xsd location="/WEB-INF/recon.xsd"/>
    </sws:dynamic-wsdl>

<bean
    class="org.springframework.ws.server.endpoint.mapping.UriEndpointMapping">
    <property name="defaultEndpoint" ref="reconGateway"></property>
</bean>

</beans>

inbound-gateway-config.xml

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:int-ws="http://www.springframework.org/schema/integration/ws"
    xmlns:int="http://www.springframework.org/schema/integration"
    xsi:schemaLocation="http://www.springframework.org/schema/integration/ws http://www.springframework.org/schema/integration/ws/spring-integration-ws.xsd
        http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <int:channel id="recon-input"/>

    <int-ws:inbound-gateway id="reconGateway" request-channel="recon-input"/>

    <int:service-activator input-channel="recon-input" method="saveArrangementApplicationDetails">
        <bean id="arrangementApplicationReconService" class="com.bofa.ecom.intfacade.snf.recon.service.ArrangementApplicationReconServiceImpl">
            <constructor-arg ref="reconServiceHelper"/>
        </bean>
    </int:service-activator>

</beans>

任何正确方向的指示将不胜感激。 编辑:我已将其缩小到我认为是 SI 或 Spring-ws 的配置问题。我找不到一个完整的 SI + Spring-ws 示例,它使用 XML 配置来弄清楚我遗漏了什么或做错了什么。我在上面添加了 spring ws 配置文件。

405 是不允许使用的方法 - 看来您正在执行 GET(或其他操作)而不是 POST。

如果您认为自己在 POSTing,请使用网络监视器(wireshark,或 eclipse 中内置的 tcp/ip 监视器)查看一下。

你也可能打错了URL;我建议你在服务器上打开 DEBUG 日志记录。

如果你还是不明白,post 日志某处,比如要点。