1

我在 Eclipse 中使用动态 Web 项目创建了 REST Web 服务,并在 tomcat 7 中运行。我能够对 Web 服务进行基本身份验证。现在我正在尝试实现基于表单的身份验证。现在,来自浏览器的任何 Web 服务调用都会显示 404 错误,而不是显示登录表单。可能是,我猜问题是 LoginForm.html 的路径。我在 webcontent 下直接创建了 LoginForm.html。

我的 web.xml 代码是

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>CustomerConnect</display-name>

   <security-role>
        <role-name>manager</role-name>
    </security-role>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>management pages</web-resource-name>
            <url-pattern>/*</url-pattern>

        </web-resource-collection>
        <auth-constraint>
            <role-name>manager</role-name>
        </auth-constraint>
    </security-constraint>

  <login-config>
        <auth-method>FORM</auth-method>
         <form-login-config>
            <form-login-page>/LoginForm.html</form-login-page>
            <form-error-page>/LoginError.html</form-error-page>
         </form-login-config>
    </login-config>

<!--   <session-config> -->
<!--  <session-timeout> -->
<!--  1 -->
<!-- </session-timeout> -->
<!--  </session-config> -->


  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.feature.Redirect</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
      <param-value>/views/</param-value>
    </init-param>
    <init-param>
      <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
      <param-value>/(images|css|jsp)/.*</param-value>
    </init-param>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.bvbi.customerconnect.middletier</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
  <context-param>
    <description>Location to store uploaded file</description>
    <param-name>file-upload</param-name>
    <param-value>
         /home/bvbi/Desktop/apache-tomcat-7.0.26/webapps/CredoImages/
     </param-value>
  </context-param>

</web-app>

项目结构为

4

1 回答 1

0

您的路径配置是正确的。*从您的<url-pattern>内部删除<servlet-mapping>

<servlet-mapping>
  <servlet-name>Jersey REST Service</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

它有什么不同吗?

于 2013-06-20T08:22:57.393 回答