2013-03-28 19 views
0

我一个JSF 2.0 Web应用程序中的Tomcat 7.0.29运行,并试图使用servlet 3.0 注释但我不能看到日志的servlet没有工作写在它的init()方法中。的Servlet 3.0不应用启动时加载

我读过了同样的问题,很多答案,但依然没有seccessful。

这是我的文件怎么看:

的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app metadata-complete="false" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 
    <display-name>GestionCongesFeki</display-name> 
    <welcome-file-list> 
    <welcome-file>index.xhtml</welcome-file> 
    </welcome-file-list> 
    <servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 


<!-- <servlet> --> 
<!--  <servlet-name>AjaxRelaisServlet</servlet-name> --> 
<!--  <servlet-class>utils.AjaxRelaisServlet</servlet-class> --> 
<!--  <load-on-startup>2</load-on-startup> --> 
<!-- </servlet> --> 
<!-- <servlet-mapping> --> 
<!--  <servlet-name>AjaxRelaisServlet</servlet-name> --> 
<!--  <url-pattern>/AjaxRelaisServlet/*</url-pattern> --> 
<!-- </servlet-mapping> --> 

</web-app> 

pom.xml中

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>esprit.pfe2013</groupId> 
    <artifactId>GestionCongesFeki</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>GestionCongesFeki Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

<repositories> 
     <repository> 
      <id>central</id> 
      <name>Maven Repository Switchboard</name> 
      <layout>default</layout> 
      <url>http://repo1.maven.org/maven2</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository>  
     <repository> 
      <id>prime-repo</id> 
      <name>Prime Repo</name> 
      <url>http://repository.primefaces.org</url> 
     </repository> 
    </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>central</id> 
      <name>Maven Plugin Repository</name> 
      <url>http://repo1.maven.org/maven2</url> 
      <layout>default</layout> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
      <releases> 
       <updatePolicy>never</updatePolicy> 
      </releases> 
     </pluginRepository> 
    </pluginRepositories> 

<!-- <repositories> --> 
<!-- <repository> --> 
<!--   <id>central</id> --> 
<!--   <name>Central Repository</name> --> 
<!--   <url>http://repo.maven.apache.org/maven2</url> --> 
<!--   <layout>default</layout> --> 
<!--   <snapshots> --> 
<!--    <enabled>false</enabled> --> 
<!--   </snapshots> --> 
<!--  </repository> --> 


<!-- </repositories> --> 

    <dependencies> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.0.1</version>   
     </dependency> 



     <!-- PrimeFaces --> 
     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>3.4.1</version> 
     </dependency> 


     <!-- JSF 2 --> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-api</artifactId> 
      <version>2.1.11</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>2.1.11</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
     </dependency> 




     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.13</version> 
     </dependency> 


     <dependency> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.4.3</version> 
</dependency> 






    </dependencies> 
    <build> 
    <finalName>GestionCongesFeki</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

并且servlet:

package utils; 

import java.io.IOException; 

import javax.servlet.Servlet; 
import javax.servlet.ServletConfig; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class AjaxRelaisServlet 
*/ 
@WebServlet("/AjaxRelaisServlet") 
public class AjaxRelaisServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public AjaxRelaisServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see Servlet#init(ServletConfig) 
    */ 
    public void init(ServletConfig config) throws ServletException { 
     System.out.println("This is AjaxRelaisServlet initialisaton !!!"); 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

} 

其实当我d时servlet工作正常在web.xml(注释代码)中将它擦掉,但是当我使用注释时不会。 顺便说一句,我想知道如果我能摆脱此问题时将得到解决web.xml中的,但我不知道怎么JSF servlet将没有它被宣布。

感谢您的帮助!

+0

你在哪里BalusC!我知道你是这方面的专家! :) – Bardelman

+1

他听不到你。 Muahahahahahhahahahhahah>:d – kolossus

+0

倒带太高兴了这个安都笑,而不是试图帮助我:d – Bardelman

回答

6

loadOnStartup=1属性添加到您的@WebServlet注释中,以使servlet在应用程序启动时加载。此属性类似于你在web.xml中找到<load-on-startup/>元素。

@WebServlet(name="AjaxRelaisServlet",loadOnStartup=1,urlPatterns={"/AjaxRelaisServlet"}) 

当你有一把锤子,所有问题看起来都像钉子。

上的更换的web.xml完全的问题,您应该知道,有一些东西是注释基于模型目前还无法实现。例如,仅使用注释(AFAIK)无法实现过滤器排序。另外,你应该认识到一个具体的配置文件是自我记录的。您的系统维护人员可以在web.xml中查看一下,并配置明智地了解应用中发生了什么。与只有注释的体系结构进行对比。要弄清楚系统中所有部分的连线是很困难的。

相关问题