2012-03-20 5 views
0

TLが起動時にロードしませんコンテナ内の他のRESTfulサービス これを行うには、スタティックな初期化ブロック内のレジストリサービスで、それぞれの他のWebサービスを登録する予定でした。サーブレットが最初のアクセスまでロードされていないことを思い出すまで、すべてうまくいっていました。 web.xmlでサーブレット定義に追加できる<load-on-startup>タグがWebで検索されました。残念ながら、これは私の設定ですでに設定されており、いくつかのロギングをスタティックブロックに追加すると、クラスが実際に各サービスの最初のアクセスまでロードされていないことが確認されました。サーブレットは

私はこれらのサーブレットをJerseyアノテーションを使って開発し、Apache Tomcatに展開しています(netbeansに組み込まれた7.0.22とリモートでデプロイされた6.0.33は同じ方法で失敗します)。 この認識された誤動作の他に、サーブレットは正しく機能しています。

私が間違っている可能性のあるアイデアはありますか?

私のweb.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </context-param> 
    <filter> 
     <filter-name>CORSFilter</filter-name> 
     <filter-class>com.foo.bar.CORSFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>CORSFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet> 
     <servlet-name>ServletAdaptor</servlet-name> 
     <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> 
     <init-param> 
      <description>Multiple packages, separated by semicolon(;), can be specified in param-value</description> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.foo.bar.webservices</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>ServletAdaptor</servlet-name> 
     <url-pattern>/resources/*</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>redirect.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 
+0

すべての例外はありますか?か何か? – ant

+0

いいえ、それは私が見たことではありません。 – Brian

答えて

0

それは数年前だったとJava Web Stackの知識のカップル年後。

私はこれが誤ったアイデンティティのケースだと信じています。私は起動時にロードしようとしていたコンテナ管理されていないリソースを持っていました。 jerseyサーブレットコンテナは、web.xmlが指定していたときに起動時に確実にロードされていました。私がプリロードしたいクラスは、コンテナ自体によって参照されていなかったので、コンテナがロードされていませんでした。

関連する問題