Maven + JSF 2 + Google AppEngine:404错误

octavian1001

我正在尝试在App Engine开发服务器上使用jsf运行一个Maven项目,对于每个托管bean,我都会收到404错误(未找到)。我编辑了http://www.mkyong.com/jsf2/jsf-2-0-hello-world-example/中的文件,以与GAE一起使用。以下是修改后的文件:

HelloBean.java

package com.mkyong.common;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import java.io.Serializable;

@ManagedBean
@RequestScoped
public class HelloBean implements Serializable {
 public String getName() {
  return "abc";
 }
}

web.xml

<?xml version="1.0" encoding="utf-8"?>
 <web-app
 version="2.5"
 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_2_5.xsd">

 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>client</param-value>
 </context-param>

 <context-param>
  <param-name>javax.faces.PROJECT_STAGE</param-name>
  <param-value>Development</param-value>
 </context-param>

 <context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml</param-value>
 </context-param>

 <context-param>
  <param-name>com.sun.faces.enableThreading</param-name>
  <param-value>false</param-value>
 </context-param>

 <!-- Faces Servlet -->
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <!-- Faces Servlet Mapping -->
 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.jsf</url-pattern>
 </servlet-mapping>

 <!-- Welcome page -->
 <welcome-file-list>
  <welcome-file>index.jsf</welcome-file>
 </welcome-file-list>
</web-app>

index.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html">

  <h:head>
<title>JSF 2.0 Hello World</title>
</h:head>
 <h:body bgcolor="white">
 <h3>JSF 2.0 Hello World Example - welcome.xhtml</h3>
 <h4>Welcome #{helloBean.name}</h4>
</h:body>
</html>

和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>com.mkyong.common</groupId>
 <artifactId>JavaServerFaces</artifactId>
 <packaging>war</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>JavaServerFaces Maven Webapp</name>
 <url>http://maven.apache.org</url>

 <dependencies>
<!-- Google AppEngine -->
  <dependency>
   <groupId>com.google.appengine</groupId>
   <artifactId>appengine-api-1.0-sdk</artifactId>
   <version>1.8.5</version>
  </dependency>
  <!-- Servlet dependency -->
  <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>servlet-api</artifactId>
   <version>2.5</version>
   <scope>provided</scope>
  </dependency>
  <!-- JSF -->
  <dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-api</artifactId>
   <version>2.2.4</version>
  </dependency>
  <dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-impl</artifactId>
   <version>2.2.4</version>
  </dependency>    
</dependencies>

 <build>
  <finalName>JavaServerFaces</finalName>

  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
     <source>1.7</source>
     <target>1.7</target>
    </configuration>
   </plugin>

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
     <archiveClasses>true</archiveClasses>
     <webResources>
      <resource>
       <directory>${basedir}/src/main/webapp/WEB-INF</directory>
       <filtering>true</filtering>
       <targetPath>WEB-INF</targetPath>
      </resource>
     </webResources>
    </configuration>
   </plugin>

   <plugin>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-maven-plugin</artifactId>
    <version>1.8.5</version>
    <configuration>
     <disableUpdateCheck>true</disableUpdateCheck>
    </configuration>
   </plugin>
  </plugins>
 </build>
</project>

其他文件:appengine-web.xml和logging.properties保持不变。

怎么了?JSF依赖项/配置?

路易吉·门多萨(Luiggi Mendoza)

您使用的是JSF 2.2.4,但您声称使用的是JSF 2.0,这是您在hello world示例中注意到的,您刚刚从教程中复制/粘贴了标题为JSF 2.0 Hello World的标题请注意,JSF 2.2至少需要Servlet 3.0 API才能工作,但是您使用的是Servlet 2.5 API(在maven pom中已注明)。您有两种方法可以解决此问题:

  • 将JSF降级到2.0。我不建议这样做,但可以解决问题。
  • 将您的Servlet API升级到3.0。请注意,这取决于GAE支持的servlet版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JSF + Myface 404 错误

来自分类Dev

如何设置Maven以启用JSF2资源版本控制?

来自分类Dev

GAE:com.google.appengine.tools.admin.HttpIoException:向URL发布错误:错误代码404

来自分类Dev

JSF页面上的Google Charts脚本标记导致错误

来自分类Dev

Twitter Bootstrap 3 Jsf 2字体错误

来自分类Dev

JSF 2中XHTML页面中的Javascript错误

来自分类Dev

JSF 2 includeViewParams

来自分类Dev

Maven GAE无法执行目标com.google.appengine:appengine-maven-plugin:1.9.12:devserver [...] NoSuchElementException

来自分类Dev

在插件com.google.appengine:appengine-maven-plugin中找不到目标“运行”

来自分类Dev

JSF convertDateTime验证错误

来自分类Dev

JSF:验证错误

来自分类Dev

JSF 404错误页面未构建组件树

来自分类Dev

使用Maven与Codenvy中的app.yaml进行编译的Google AppEngine发生冲突

来自分类Dev

在Mac OS X Mavericks上使用Maven插件启动Google Appengine devserver时出现延迟

来自分类Dev

错误404安装Google Chrome

来自分类Dev

PropertyNotFoundException之后的JSF错误页面

来自分类Dev

JSF Base64错误?

来自分类Dev

从Maven存储库中提取最新的JSF Mojarra实现

来自分类Dev

对Google Spreadsheet的Maven依赖

来自分类Dev

如何让PyCharm记住Google AppEngine的oAuth2凭据?

来自分类Dev

我的App版本2未找到AppEngine Cloud EndPoint 404

来自分类Dev

在Maven3中使用插件而不是Maven2时,MavenProject参数导致错误

来自分类Dev

从xsd生成maven-jaxb2-plugin类(版本错误)

来自分类Dev

JSF 2版权符号

来自分类Dev

JSF 2:ViewParams:setter方法中的操作?

来自分类Dev

JSF 2 Spring XRebel大型会议

来自分类Dev

JSF2中的验证程序问题

来自分类Dev

jsf2传递请求参数commandButton

来自分类Dev

JSF2-以编程方式创建HtmloutputLink

Related 相关文章

  1. 1

    JSF + Myface 404 错误

  2. 2

    如何设置Maven以启用JSF2资源版本控制?

  3. 3

    GAE:com.google.appengine.tools.admin.HttpIoException:向URL发布错误:错误代码404

  4. 4

    JSF页面上的Google Charts脚本标记导致错误

  5. 5

    Twitter Bootstrap 3 Jsf 2字体错误

  6. 6

    JSF 2中XHTML页面中的Javascript错误

  7. 7

    JSF 2 includeViewParams

  8. 8

    Maven GAE无法执行目标com.google.appengine:appengine-maven-plugin:1.9.12:devserver [...] NoSuchElementException

  9. 9

    在插件com.google.appengine:appengine-maven-plugin中找不到目标“运行”

  10. 10

    JSF convertDateTime验证错误

  11. 11

    JSF:验证错误

  12. 12

    JSF 404错误页面未构建组件树

  13. 13

    使用Maven与Codenvy中的app.yaml进行编译的Google AppEngine发生冲突

  14. 14

    在Mac OS X Mavericks上使用Maven插件启动Google Appengine devserver时出现延迟

  15. 15

    错误404安装Google Chrome

  16. 16

    PropertyNotFoundException之后的JSF错误页面

  17. 17

    JSF Base64错误?

  18. 18

    从Maven存储库中提取最新的JSF Mojarra实现

  19. 19

    对Google Spreadsheet的Maven依赖

  20. 20

    如何让PyCharm记住Google AppEngine的oAuth2凭据?

  21. 21

    我的App版本2未找到AppEngine Cloud EndPoint 404

  22. 22

    在Maven3中使用插件而不是Maven2时,MavenProject参数导致错误

  23. 23

    从xsd生成maven-jaxb2-plugin类(版本错误)

  24. 24

    JSF 2版权符号

  25. 25

    JSF 2:ViewParams:setter方法中的操作?

  26. 26

    JSF 2 Spring XRebel大型会议

  27. 27

    JSF2中的验证程序问题

  28. 28

    jsf2传递请求参数commandButton

  29. 29

    JSF2-以编程方式创建HtmloutputLink

热门标签

归档