Ich versuche CDI in Tomcat 9.x zu arbeiten. Ich folgte den folgenden Links, aber immer noch openwebbeans Behälter nicht die Ressource in den Servlet-spritzen hatApache OpenWebBeans (CDI) + Servlet, Injektion funktioniert nicht
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
Unten ist mein Servlet
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);
}
}
Im Folgenden wird die web.xml
<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>
Die folgende Zeile wurde hinzugefügt server.xml
<Listener className="org.apache.webbeans.web.tomcat7.ContextLifecycleListener" />
Unten ist mein pom.xml
<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>
hinzugefügt, um die unten Gläser unter tomcat lib
- geronimo-annotation_1.3_spec-1.0
- geronimo-atinject_1. 0_spec-1.0
- geronimo-interceptor_1.2_spec-1.0
- geronimo-jcdi_2.0_spec-1,0
- openwebbeans-el22-2.0.0
- openwebbeans-Umsetz-2.0.0
- openwebbeans-spi-2.0.0
- openwebbeans-tomcat7-2.0.0
- openwebbeans-web-2.0.0
- XBean-ASM5 beschatteten-4,5
- XBean-Finder-schattierten-4,5
- Javassist-3.21.0-GA
Im Folgenden sind die Serverprotokolle nach der Bereitstellung meines Krieges. Es ist klar, aus den Protokollen, die offenen Web-Bohnenbehälter
20-Jul-2017 10 begonnen hat: 06: 08,315 INFO [http-nio-8080-exec-5] org.apache.catalina.startup. HostConfig.deployWAR Bereitstellen von Web Anwendungsarchiv [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 Container wird gestartet ... 20-Jul-2017 10: 06: 09.229 INFO [http-nio-8080-exec-5] org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication OpenWebBeans Container wurde gestartet, es dauerte [325] ms. 20-Jul-2017 10: 06: 09,235 INFO [http-NiO-8080-exec-5] org.apache.catalina.startup.HostConfig.deployWAR Bereitstellung von Web-Anwendung Archiv [D: \ krishna \ Apache- tomcat-9.0.0.M22 \ webapps \ openwebbeans-Anfänger.Krieg] hat in [920] ms abgeschlossen
Zusätzlich erstellt i openwebbeans.properties unter META-INF/openwebbeans und hinzugefügt org.apache.webbeans.spi.ContainerLifecycle = org.apache.webbeans.lifecycle.StandaloneLifeCycle dazu. Aber es funktioniert immer noch nicht
Ich habe auch versucht mit org.apache.webbeans.spi.ContainerLifecycle = org.apache.webbeans.web.lifecycle.WebContainerLifecycle aber nichts scheint zu funktionieren.
Kann mir bitte jemand helfen, damit das funktioniert?
Ich habe das gleiche Problem mit Tomcat-8.0.45 und Tomcat-8.5.16. Hat jemand das zur Arbeit gebracht? – David