使用 Objectify 编译 Maven 项目时找不到 ObjectifyFilter class

ObjectifyFilter class not found when compiling Maven project with Objectify

我是 GAE 的新手,正在根据示例开发我的 Datastore 应用程序 https://cloud.google.com/appengine/docs/java/gettingstarted/usingdatastore 我的 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
 <groupId>DecisionTree</groupId>
 <artifactId>DecisionTree</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <build>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
<resources>
  <resource>
    <directory>src</directory>
    <excludes>
      <exclude>**/*.java</exclude>
    </excludes>
  </resource>
</resources>
<plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
      <source>1.7</source>
      <target>1.7</target>
    </configuration>
    </plugin>
  </plugins>
 </build>
 <dependencies>
<dependency>
    <groupId>com.googlecode.objectify</groupId>
    <artifactId>objectify</artifactId>
    <version>4.0.1</version>
</dependency>  
<dependency>
<groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    </dependency>
  </dependencies>
</project>

我的web.xml是

<?xml version="1.0" encoding="UTF-8"?>
 <web-app 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"
     version="2.5"
     xmlns="http://java.sun.com/xml/ns/javaee">
<!-- Servlets -->
<servlet>
<servlet-name>greetServlet</servlet-name>
<servlet- 
class>com.google.gwt.decisiontree.server.GreetingServiceImpl</servlet- 
class>
</servlet>
<servlet-mapping>
<servlet-name>greetServlet</servlet-name>
<url-pattern>/decisiontree/greet</url-pattern>
 </servlet-mapping>

<servlet>
<servlet-name>jsonDecisionTreeData</servlet-name>
<servlet-  
class>com.google.gwt.decisiontree.server.JsonDecisionTreeData</servlet-
class>
</servlet>
  <servlet-mapping>
<servlet-name>jsonDecisionTreeData</servlet-name>
<url-pattern>/decisiontree/jsonData</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>constructDecisionTree</servlet-name>
<servlet-
 class>com.google.gwt.decisiontree.server.ConstructDecisionTree</servlet-
 class>
</servlet> 
<servlet>
  <servlet-name>insert_attribute_value</servlet-name>
  <servlet-class>com.google.gwt.decisiontree.server.
               InsertAttributeValueServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>constructDecisionTree</servlet-name>
      <url-pattern>/decisiontree/construct</url-pattern>
   </servlet-mapping>    
  <servlet-mapping>
  <servlet-name>insert_attribute_value</servlet-name>
  <url-pattern>/insert_attribute</url-pattern>
  </servlet-mapping>

<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>DecisionTree.html</welcome-file>
</welcome-file-list>
<!--  for Objectify support, for Google Datastore -->

<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
 </filter-mapping>
 <listener>
<listener-class>com.example.guestbook.OfyHelper</listener-class>
 </listener>
 </web-app>

DecisionTree.html 有以下 servlets 调用

<a href="decisiontree/construct?action=construct_decision_tree">Construct decision tree</a>
<br/>
<a href="decisiontree/construct?action=construct_svg_decision_tree">Construct SVG decision tree</a>
<br/>
<a href="decisiontree/construct?action=construct_svg_decision_tree_2">Construct SVG decision tree 2</a>
<br/>
<a href="decisiontree/insert_attribute">Insert attribute value</a>

作为编译的结果,我有警告

WARNING: EXCEPTION 
java.lang.ClassNotFoundException:   
 com.googlecode.objectify.ObjectifyFilter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ....

当我 运行 http://127.0.0.1:8888/DecisionTree.html 我得到

HTTP ERROR: 503

Problem accessing /DecisionTree.html. Reason:

SERVICE_UNAVAILABLE
Powered by Jetty://

我认为 Objectify 有问题。请帮助我!

Objectify 的当前版本是 5.1.5。您在 pom 中声明 4.0.1; ObjectifyFilter 可能当时不存在。使用现代版本。