您好我正在使用注释来映射servlet而不是web.xml
,我正在尝试使用objectify从数据存储区中检索实体,(我正在使用java版本的google app引擎)并且我使用的是静态块注册实体(类)。
我收到了这个错误:
java.lang.IllegalStateException: You have not started an Objectify context. You are probably missing the ObjectifyFilter. If you are not running in the context of an http request, see the ObjectifyService.run() method.
at com.googlecode.objectify.ObjectifyService.ofy(ObjectifyService.java:44)
我知道,需要在web.xml中对对象进行客观化:(如下面的代码所示)我的情况下我没有使用web.xml
<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>
问题:
如何在注释中执行此客观化过滤器?
答案 0 :(得分:1)
这需要将代码更改为ObjectifyFilter,以便获取@WebFilter注释。当您使用自己的Servlet /相关代码的注释时,您仍然可以创建一个web.xml来定义Objectify过滤器,它应该可以解决问题。
答案 1 :(得分:1)
我通过创建一个扩展ObjectifyFilter
的类来解决这个问题@WebFilter(urlPatterns = {"/*"})
public class ObjectifyFilterServlet extends ObjectifyFilter {
}
所以,它的工作正常,但是当我使用web.xml时,代码
<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>
我收到Error 404
第一个请求。所以我创建了一个扩展ObjectifyFilter的简单类,我解决了这个问题。如果还有其他解决方案,也可以分享这些信息。谢谢