WebServiceTransportException:找不到[404] [英] WebServiceTransportException: Not Found [404]

查看:95
本文介绍了WebServiceTransportException:找不到[404]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在使用jaxb实现spring Web服务.但是,当我尝试使用创建的Web服务时,遇到了WebServiceTransportException: Not Found [404]错误.我确实尝试搜索网络,但找不到可能的根本原因.下面显示了我的源代码.

I'm currently implementing a spring web service using jaxb. But when I trying to consume the web service created a WebServiceTransportException: Not Found [404] error is encountered. I did try to search the net but could not able to find a possible root cause. Below I have show my source codes.

application-context.xml

application-context.xml

<bean
    class="org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter">
    <constructor-arg ref="marshaller" />
</bean>

<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
            <value>com.ph.domain.EightBallRequest</value>
            <value>com.ph.domain.EightBallResponse</value>
        </list>
    </property>
</bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/jsp/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

<bean id="simpleUrlHandlerMapping"
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
    lazy-init="true">
    <property name="mappings">
        <props>
            <prop key="/test.asp">LandingController</prop>
        </props>
    </property>
</bean>     

<bean name="LandingController" class="com.ph.controller.LandingController">
    <property name="stub" ref="eightBallClient"/>
</bean>

网络服务客户端

public class EightBallClient extends WebServiceGatewaySupport {

private Resource request;

public void setRequest(Resource request) {
    this.request = request;
}

public String AskQuestion(String question) throws IOException {
    String responseString = null;

    EightBallRequest request = new EightBallRequest();
    request.setQuestion(question);

    EightBallResponse response = new EightBallResponse();

    response = (EightBallResponse) getWebServiceTemplate()
            .marshalSendAndReceive(request);
    responseString = response.getAnswer().toString();
    return responseString;
}
}

我的网络服务的定义

<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema">
    <property name="xsd" value="/WEB-INF/eightball.xsd" />
</bean>

下面是错误堆栈:

SEVERE: Servlet.service() for servlet dispatcher threw exception
org.springframework.ws.client.WebServiceTransportException: Not Found [404]
    at org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:626)
    at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:550)
    at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:501)
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:350)
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:344)
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:336)

推荐答案

在我的情况下,解决方案是注意URI中的情况.我全都用小写字母,但是Web服务希望使用CamelCase动作名称.

In my case, the solution was to pay attention to the case in the URI. I had it in all lower case, but the webservice was expecting a CamelCase action name.

这篇关于WebServiceTransportException:找不到[404]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆