'未找到服务。" Spring和jQuery中的错误(ajax调用)

时间:2015-12-03 20:39:11

标签: jquery ajax spring tomcat http-post

我有一个在Spring Framework下有多个GET和POST请求的Java服务器,它运行得很好。现在,我在项目中创建了一个jsp文件来创建一个简单的表单(CustomerID,Title,Message)。单击表单的提交按钮,我想将JSON格式的表单数据发布到我的服务。当我使用Advanced REST Client触发它时,此服务调用(POST请求)工作正常。但是,在Tomcat服务器上部署时,表单的这个特定前端不会在浏览器中打开。相反,我得到了#34;没有找到服务。"显示在我的屏幕上。

在摆弄我的web.xml之后,我意识到如果我删除以下代码:

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>ecvServlet</servlet-name>
    <servlet-class>com.***.platform.ecvcheck.NodeStatusServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ecvServlet</servlet-name>
    <url-pattern>/node</url-pattern>
</servlet-mapping>

从我的web.xml,然后form.jsp文件打开就好了。但是没有GET和POST请求(甚至是与form.jsp无关的请求)都不起作用。因此,点击“提交”按钮不会调用任何服务。

我的最终web.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">

<display-name>feedex-app</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/appContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<listener>
    <listener-class>com.***.platform.config.PlatformContextLoaderListener</listener-class>
</listener>

<display-name>feedex-app</display-name>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>

有人可以帮我解决如何在Tomcat服务器(webapp)中加入前端位吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

添加以下内容解决了问题:

<init-param>
  <param-name>static-resources-list</param-name>
  <param-value>/(\w)+.html</param-value>
</init-param>

我的最终web.xml看起来像这样。

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">


<display-name>feedex-app</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/appContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<listener>
    <listener-class>com.***.platform.config.PlatformContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    <init-param>
        <param-name>static-resources-list</param-name>
        <param-value>/(\w)+.jsp</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>ecvServlet</servlet-name>
    <servlet-class>com.***.platform.ecvcheck.NodeStatusServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ecvServlet</servlet-name>
    <url-pattern>/node</url-pattern>
</servlet-mapping>

<display-name>feedex-app</display-name>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>

</web-app>

答案 1 :(得分:0)

您的CXFServlet网址映射是个问题。您将映射作为/ *。因此所有请求,甚至静态资源都被路由到CXFServlet。尝试将CXFServlet映射到其他内容。它会工作得很好。你不需要静态资源列表。