小编Eis*_*ith的帖子

Jersey Guice JSP怎么样?

我正在使用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".

web.xml看起来像这样:

  <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)

java jsp jersey guice

21
推荐指数
1
解决办法
3932
查看次数

在播放框架中的测试模式下禁用 play.jobs.Job 运行

使用带有 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)

scala playframework

5
推荐指数
1
解决办法
1201
查看次数

用于更新方法的半复制/克隆构造函数

我有许多格式为的案例类

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容易出错.

有关如何提高效率的任何想法?

scala

1
推荐指数
1
解决办法
197
查看次数

标签 统计

scala ×2

guice ×1

java ×1

jersey ×1

jsp ×1

playframework ×1