2017-07-20 10 views
1

CDIをtomcat 9.xで動作させようとしています。私は、以下のリンクをたどったが、まだサーブレットにリソースを投入していないコンテナopenwebbeansApache OpenWebBeans(CDI)+サーブレット、インジェクションが動作しない

https://devlearnings.wordpress.com/2011/05/15/apache-openwebbeans-cdi-from-standalone-to-webapp/以下 https://dzone.com/articles/using-apache-openwebbeans http://openwebbeans.apache.org/owbsetup_ee.html

は、web.xml

私のサーブレットの下

package com.openwebbeans; 

import java.io.IOException; 

import javax.inject.Inject; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class SampleController extends HttpServlet{ 

    private static final long serialVersionUID = 1L; 

    @Inject 
    private SampleService service; 

    public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException { 

     response.getWriter().print(service); 
    } 
} 

されています

<web-app 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" 
    version="3.0"> 
    <display-name>OpenWebBeans</display-name> 

    <listener> 
     <listener-class>org.apache.webbeans.servlet.WebBeansConfigurationListener</listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>sample</servlet-name> 
     <servlet-class>com.openwebbeans.SampleController</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>sample</servlet-name> 
     <url-pattern>/sample</url-pattern> 
    </servlet-mapping> 
</web-app> 

次の行をserver.xmlの

<Listener className="org.apache.webbeans.web.tomcat7.ContextLifecycleListener" /> 

は、以下の私のpom.xml

  • のgeronimo-annotation_1.3_spec-1.0
  • のgeronimo-atinject_1 libのTomcatの下

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
        <modelVersion>4.0.0</modelVersion> 
        <groupId>com.openwebbeans</groupId> 
        <artifactId>openwebbeans-beginner</artifactId> 
        <packaging>war</packaging> 
        <version>1.0</version> 
        <name>openwebbeans-beginner</name> 
        <url>http://maven.apache.org</url> 
        <properties> 
         <owb.version>2.0.0</owb.version> 
        </properties> 
        <dependencies> 
         <dependency> 
          <groupId>javax.servlet</groupId> 
          <artifactId>javax.servlet-api</artifactId> 
          <version>3.1.0</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.geronimo.specs</groupId> 
          <artifactId>geronimo-atinject_1.0_spec</artifactId> 
          <version>1.0</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.geronimo.specs</groupId> 
          <artifactId>geronimo-jcdi_2.0_spec</artifactId> 
          <version>1.0</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.geronimo.specs</groupId> 
          <artifactId>geronimo-interceptor_1.2_spec</artifactId> 
          <version>1.0</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.geronimo.specs</groupId> 
          <artifactId>geronimo-annotation_1.3_spec</artifactId> 
          <version>1.0</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.openwebbeans</groupId> 
          <artifactId>openwebbeans-impl</artifactId> 
          <version>${owb.version}</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.openwebbeans</groupId> 
          <artifactId>openwebbeans-spi</artifactId> 
          <version>${owb.version}</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.openwebbeans</groupId> 
          <artifactId>openwebbeans-web</artifactId> 
          <version>${owb.version}</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.openwebbeans</groupId> 
          <artifactId>openwebbeans-tomcat7</artifactId> 
          <version>${owb.version}</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.javassist</groupId> 
          <artifactId>javassist</artifactId> 
          <version>3.21.0-GA</version> 
          <scope>provided</scope> 
         </dependency> 
        </dependencies> 
        <build> 
         <finalName>openwebbeans-beginner</finalName> 
        </build> 
    </project> 
    

    を追加しました以下のjarファイルです。 0_spec-1.0

  • geronimo-interceptor_1.2_spec-1.0
  • ジェロニモ-jcdi_2.0_spec-1.0
  • openwebbeans-el22-2.0.0
  • openwebbeans-IMPL-2.0.0
  • openwebbeans-SPI-2.0.0
  • openwebbeans-tomcat7-2.0.0
  • openwebbeansウェブ-2.0.0
  • XBeanの-asm5シェーディング-4.5
  • XBeanのファインダシェーディング-4.5
  • Javassistの-3.21.0-GA

以下は、戦争を展開した後のサーバーログです。 06:08.315 INFO [HTTP-NIO-8080-EXEC-5] org.apache.catalina.startupこれは、オープンなWeb豆コンテナは10

20 - 7月 - 2017年開始したログから明らかです。 HostConfig.deployWAR Webを展開する アプリケーションアーカイブ [D:\ krishna \ apache-tomcat-9.0.0.M22 \ webapps \ openwebbeans-beginner.war] 20-Jul-2017 10:06:08.904 INFO [http-nio- 8080-exec-5] org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication OpenWebBeansコンテナが開始されています... 20-Jul-2017 10:06:09.229情報 [http-nio-8080-exec-5] org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication OpenWebBeans Containerが起動しましたが、[325] msかかりました。 20-Jul-2017 10:06:09.235 INFO [http-nio-8080-exec-5] org.apache.catalina.startup.HostConfig.deployWAR Webのデプロイ アプリケーションアーカイブ [D:\ krishna \ apache- tomcat-9.0.0.M22 \ webapps \ openwebbeans-beginnerです。戦争] はさらに、iはMETA-INF/openwebbeans下openwebbeans.propertiesを作成しorg.apache.webbeans.spi.ContainerLifecycle = org.apache.webbeans.lifecycle.StandaloneLifeCycleを添加し[920] MS

に仕上がっていますそれにしかし、それはまだ私もorg.apache.webbeans.spi.ContainerLifecycle = org.apache.webbeans.web.lifecycle.WebContainerLifecycleと試みたが、何も動いていないようにみえ

動作しません。

誰でもこの作業を手伝ってもらえますか?

+0

私はTomcat-8.0.45とTomcat-8.5.16で同じ問題があります。誰もこれを働かせた? – David

答えて

0

サーブレットに注入が必要な場合は、サーブレットリスナーだけでなく、より深い統合が必要です。これにopenwebbeans-tomcat7プラグインを提供します。ちょうどあなたのweb.xmlから全体WebBeansConfigurationListenerを削除し、その場合には、当社の発表メール https://lists.apache.org/thread.html/[email protected]%3Cannounce.apache.org%3E

で説明したように

最も簡単な方法は、私たちのインストーラを使用することです。これは、 'unpimped'サーブレットコンテナに統合したい場合や、GAEなどで実行する場合に使用します。その場合は、CDI.current()を使用してServletでCDI Beanを取得してください。

また、javassistの依存関係も必要ありません。 OWB-1.2.xではこれがずっと前に削除されました。

freenode.netの#openwebbeansにある私たちのメーリングリストまたはircにpingしてください。

もう1つのヒント:OWB + Tomcat9 + CXF + JohnzonというApache Meecrowaveコンテナを試すことができます.9MBのすべてです。これには、maven-plugin、Arquillian containerなどが含まれています。

関連する問題