我正在使用tomcat 6,jersey 1.8 with jersey guice and guice 3.我在设置时使用JSP时遇到问题.我有一个"Status"servlet作为web.xml配置的简单servlet,一个由GuiceFilter配置的jersey servlet,它返回一个jsp视图响应(jsp是/diff/index.jsp),用于呈现结果,如下所示:
Viewable view = new Viewable("/diff/index.jsp", null);
Response response = Response.ok().entity(view).build();
return response;
Run Code Online (Sandbox Code Playgroud)
这一切都与简单的泽西岛完美配合,一旦我试图用Guice集成它,JSP失败了,我得到了404响应,"请求的资源(/diff/index.jsp)不可用."
使用调试器,我可以看到JSPTemplateProcessor被调用,并获得了一个RequestDispatcher,其StandardWrapper具有"isJspServlet = true"和"jspFile = null".
<servlet>
<display-name>Status Page</display-name>
<servlet-name>Status</servlet-name>
<servlet-class>my.BaseStatusPage</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Status</servlet-name>
<url-pattern>/Status/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/REST/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>my.GuiceServletConfig</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
=====================
GuiceServletConfig:
public class GuiceServletConfig extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
return Guice.createInjector(new JerseyServletModule() {
@Override
protected void configureServlets() {
bind(DiffPage.class);// the jersey servlet
Map<String, String> params …Run Code Online (Sandbox Code Playgroud) 使用带有 Scala 的 play 框架 1.2.4。我的游戏工作很少看起来像
@OnApplicationStart class MyOtherJob extends Job { ... }
@Every("30s") class MyJob extends Job { ... }
Run Code Online (Sandbox Code Playgroud)
当应用程序处于测试模式时,这些作业正在运行,所以它们会把事情搞砸。如何在测试时禁止它们运行?
我尝试了以下应用程序配置,没有帮助:
# Jobs executor
# ~~~~~~
# Size of the Jobs pool
play.jobs.pool=10
test.play.jobs.pool=0
test.cron.queue.every=never
dev.cron.queue.every=20s
prod.cron.queue.every=20s
test.cron.onApplicationStart.trigger=never
dev.cron.onApplicationStart.trigger=auto
prod.cron.onApplicationStart.trigger=auto
Run Code Online (Sandbox Code Playgroud) 我有许多格式为的案例类
case class Cluster (id: Pk[Long],
foo: Long,
bar: String,
env: String,
name: String,
deleted: Boolean = false) {
def delete() = Cluster(id, foo, bar, env, name, true)
def updateName(name: String) = Cluster(id, foo, bar, env, name, deleted)
def updateFoo(foo: Long) = Cluster(id, foo, bar, env, name, deleted)
}
Run Code Online (Sandbox Code Playgroud)
我试图让我的所有类都不可变,即更新方法正在创建一个新实例.一些类有更多的成员,并且具有克隆自身对象的更新方法具有不同的值,因为tedies容易出错.
有关如何提高效率的任何想法?