Spring Integration Web Service 405错误

时间:2015-03-18 20:27:44

标签: spring-integration

我被要求做一个原型,将使用支持Spring的JAX-WS端点的工作Web服务转换为使用Spring Integration,而且我被告知要使用xml配置。可能。我删除了应用程序,直到只剩下相关的Web服务元素,并且我根据需要创建了几个新的spring xml配置文件。虽然它编译得很好,当我部署到JBoss容器然后尝试使用SoapUI调用它时,我得到一个HTTP 405响应,并且JBoss控制台中没有任何内容表明请求甚至被收到,尽管服务器日志表示新网关和服务激活器已正确设置并正在运行。我无法在我读过的任何Spring文档中找到任何与远程相关的内容,而且我从Github中提取的代码示例都没有配置Web服务以在实际的J2EE服务器中运行。 我完全不知道自己应该关注什么。这是我的spring配置文件:

springContext-main.xml(由于预先存在的约束,我无法在真实应用中使用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>

侦察-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>

入站网关-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配置文件。

1 个答案:

答案 0 :(得分:0)

405是方法不允许 - 看起来你正在进行GET(或其他)而不是POST。

如果您认为自己正在发帖,请查看网络监视器(wireshark或eclipse中的内置tcp / ip监视器)。

您可能也遇到了错误的网址;我建议你打开服务器上的DEBUG日志。

如果你仍然无法解决问题,请将日志发布到某个地方,例如要点。