jRebel打破了Application和Session Scoped bean的加载

时间:2012-11-07 11:28:39

标签: eclipse maven jetty jrebel

在没有jRebel的情况下启动时,jetty的调试日志包含许多引用MyApplicationScopedBean的消息,如:

13:46:29.620 [main] DEBUG o.e.jetty.webapp.WebAppClassLoader - loaded class MyApplicationScopedBean  from WebAppClassLoader=571787213@2214c7cd
13:46:32.132 [main] DEBUG o.e.jetty.webapp.WebAppClassLoader - loaded class MyApplicationScopedBean$1 from WebAppClassLoader=571787213@2214c7cd
13:46:32.162 [main] DEBUG o.e.jetty.webapp.WebAppClassLoader - loaded class MyApplicationScopedBean$2 from WebAppClassLoader=571787213@2214c7cd
...

但是对于jRebel,日志只包含一个关于MyApplicationScopedBean的字符串:

13:44:12.351 [main] DEBUG o.e.jetty.webapp.WebAppClassLoader - loaded class MyApplicationScopedBean from WebAppClassLoader=1298169768@4d607fa8

为什么会发生这种想法?

以下是maven插件:

  <plugins>         
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.0.1</version>
            <executions>
                <execution>
                    <id>scala-compile-first</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>add-source</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>scala-test-compile</id>
                    <phase>process-test-resources</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webAppConfig>
                    <sessionHandler implementation="org.eclipse.jetty.server.session.SessionHandler">
                        <sessionManager
                            implementation="org.eclipse.jetty.server.session.HashSessionManager">
                            <!-- Disable url sessions using JSessionID -->
                            <sessionIdPathParameterName>none</sessionIdPathParameterName>
                        </sessionManager>
                    </sessionHandler>
                </webAppConfig>
                <!-- <failOnMissingWebXml>false</failOnMissingWebXml> -->
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <configuration>
                <systemProperties>
                    <systemProperty>
                        <name>logback.configurationFile</name>
                        <value>./src/etc/logback.xml</value>
                    </systemProperty>

                </systemProperties>

            </configuration>
            <dependencies>
                <dependency>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                    <version>1.0.7</version>
                </dependency>
            </dependencies>

        </plugin>
        <plugin>
            <groupId>org.zeroturnaround</groupId>
            <artifactId>jrebel-maven-plugin</artifactId>
            <version>1.1.1</version>
            <executions>
                <execution>
                    <id>generate-rebel-xml</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

1 个答案:

答案 0 :(得分:-1)

我在没有eclipse插件的情况下使用jRebel 5.0。安装最新的jRebel 5.1 eclipse插件解决了这个问题。

更新:在我将试用版许可证升级到社交版本后,它再次停止加载JSF bean。我也对他们可疑的营销解决方案感到恼火:
1.在关于代码的每个主题中都有愚蠢的误导性陈述,例如:“这里是:jRebel ......” 2.社会许可证允许发布到您的FB(或Twitter)的许可。 看起来人们真的专注于以任何价格赚钱。

所以,我决定摆脱这个废话并安装DCEVM。它只是工作!它是免费和开源的。

http://ssw.jku.at/dcevm/