2013-03-08 59 views
3

行家+碼頭+春季兩個問題3.2有當我開始碼頭

我的碼頭信息來源:

2013-03-08 20:16:23.541:INFO:oejs.Server:main: jetty-9.0.0.RC2 
2013-03-08 20:16:26.590:INFO:oejpw.PlusConfiguration:main: No Transaction manager found - if your webapp requires one, please configure one. 
[DEBUG][2013-03-08 20:16:35,801]->org.eclipse.jetty.util.log [Logging to org.slf4j.impl.Log4jLoggerAdapter(org.eclipse.jetty.util.log) via org.eclipse.jetty.util.log.Slf4jLog] 
2013-03-08 20:16:35.848:INFO:/:main: No Spring WebApplicationInitializer types detected on classpath 
2013-03-08 20:16:36.743:INFO:/:main: Initializing Spring FrameworkServlet 'app-servlet' 

碼頭找不到事務管理器,但我在Spring應用程序已經配置它-context(APP-servlet.xml中):

<!-- 使用註解方式管理事務 --> 
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> 
<!-- 配置事務管理 --> 
    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory"></property> 
    </bean> 

它說在web.xml 「關於classpath中沒有檢測到春天WebApplicationInitializer類型」,我也配置 「應用-servlet.xml中」:

<!-- spring mvc的dispatcherServlet負責轉發請求 --> 
    <servlet> 
     <servlet-name>app-servlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <!-- spring context文件 --> 
      <param-name>contextConfigLocation</param-name> 
      <param-value> 
       classpath*:/spring/**/app-*.xml 
      </param-value> 
     </init-param> 
     <!-- 服務啓動的時候第一個將此servlet初始化加載,非零的時候,數字越小,優先級越高 --> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

我的pom.xml:

<!-- jetty --> 
      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.0.0.RC2</version> 
      </plugin> 

爲什麼碼頭提醒我?我如何消除這些異常信息? 感謝您回答這兩個問題。

回答

2

有關事務管理的信息消息...

2013-03-08 20:16:26.590:INFO:oejpw.PlusConfiguration:main: No Transaction manager found - if your webapp requires one, please configure one. 

是因爲你沒有一個XA Transaction Manager declared in JNDI做。 針對此的典型配置位於/WEB-INF/jetty-env.xml或服務器端,使用Deployment Context Descriptor

至於春天的其他錯誤信息,that's a bit more messy to solve

+0

有了這個「無事務管理器」的信息,我發現Spring的事務不受碼頭。正如你所說的那樣,我嘗試在「/WEB-INF/jetty-env.xml」中配置「tx」 - 「org.eclipse.jetty.plus.jndi.Transaction」(當然,我仍然有「com .atomikos transactions-jta「在我的pom.xml中),那麼這個」No Transaction ..「信息就消失了。非常感謝您的回答。 – Hoting 2013-03-09 12:08:12

3

正如已經提到的,來自碼頭的關於「無事務管理器」的消息純粹是信息性的,可以忽略(您正在使用僅知道彈簧的事務管理器)。

至於另一個消息「在類路徑中沒有檢測到Spring WebApplicationInitializer類型」,它似乎是Spring的一個純粹的信息性消息 - 如果你有一個servlet 3.0 webapp並且你使用的是spring 3.2,那麼SpringServletContainerInitializer類將會在你的webapp啓動時被調用,並且它在類路徑中查找Spring的WebApplicationInitializer接口的實現。大概你沒有任何東西,因爲我已經測試了jetty-9.0.0.RC2和jetty-9.0.0 final 3.2,並且任何這樣的初始化器都被正確地發現了。

問候 月

+0

我也認爲這只是一個信息性消息。因爲有了這些消息,Spring和我的項目中運行的「@Transactional」實際上沒有問題。
但我不確定Jetty爲什麼會這樣提醒我。由於tomcat7沒有類似的信息,當我在「jetty-env.xml」中配置「tx」 - 「org.eclipse.jetty.plus.jndi.Transaction」時,這個「無事務」信息消失了。所以我認爲Jetty的配置必須使用JNDI? – Hoting 2013-03-10 06:41:39

相關問題