java - Web 服务传输异常 : Not Found [404]

标签 java spring service web jaxb

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

应用程序上下文.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:

 <bean name="webserviceTemplate"
 class="org.springframework.ws.client.core.WebServiceTemplate">
     <property name="defaultUri" value="http://localhost:8080/mywebservice" />

检查这个值:

"http://mylocal:8080/mywebservice"

关于java - Web 服务传输异常 : Not Found [404],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892068/

相关文章:

java - StringBuilder insert() vs append() 性能?

java - 异步任务不起作用

java - Spring 轮廓注入(inject): don't inject a class without a profile

java - 即使使用 jackson-datatype-jsr310,Instant 也无法序列化为适当的格式

java - 需要迁移 hibernate 3 到 5 指南吗?

c# - 如何使用 Java 使用 SOAP Web 服务?

java - 如何只检索一个pushId

java - 如何从mockito中的另一个包访问 protected 方法?

php - 服务方法作为 Twig 全局变量

ios - ios中推送通知的服务器端问题