2016-08-31 9 views
1

JSF beanをCDI beanで置き換えるのは簡単だと思いました。しかし、それは遅いスタートです。非常に遅い。Tomcat 8.5でのCDIとJSFの使い方

私はTomcat 8.5とJSF 2.2を使用しています。私はCDIを使用しようとしています。私は別の設定を試みましたが、結果は異なりますが、何も動作しませんでしたので、私はhttp://balusc.omnifaces.org/2013/10/how-to-install-cdi-in-tomcat.htmlのオリエンテーションに従っています。

SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Workflow]] 
at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911) 
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

私の構成は以下のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" 
bean-discovery-mode="annotated" 
> 
</beans> 

beans.xmlのMETA-INF \のcontext.xml \

<!-- language: lang-html --> 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<Context reloadable="true"> 
<Resources   cachingAllowed="true" cacheMaxSize="20000"  /> 

<Resource 
name="jdbc/FlowDB" 
auth="Container" 
type="javax.sql.DataSource" 
maxActive="100" 
maxIdle="30" 
maxWait="10000" 
username="xxxx" 
password="xxxxxxxxxxx" 
driverClassName="com.mysql.jdbc.Driver" 
url="jdbc:mysql://localhost:3306/flow?autoReconnect=true" /> 

<Resource 
name="mail/Session" 
auth="Container" 
type="javax.mail.Session" 
mail.smtp.host="localhost" 
mail.smtp.port="25" 
mail.smtp.auth="true" 
mail.smtp.user="[email protected]" 
mail.smtp.password="123456" /> 

<!-- Binding BeanManager to JNDI --> 
<Resource 
name="BeanManager" 
auth="Container" 
type="javax.enterprise.inject.spi.BeanManager" 
factory="org.jboss.weld.resources.ManagerObjectFactory"/> 

<!--        --> 

</Context> 

\ WEB-INF \ Pom.xml

<build> 
<plugins> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler-plugin</artifactId> 
<version>3.1</version> 
<configuration> 
<source>1.8</source> 
<target>1.8</target> 
</configuration> 
</plugin> 

<plugin> 
<artifactId>maven-resources-plugin</artifactId> 
<version>2.7</version> 
<configuration> 
<encoding>UTF-8</encoding> 
</configuration> 
</plugin> 

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-war-plugin</artifactId> 
<version>2.6</version> 
</plugin> 
</plugins> 
</build> 

<dependencies> 
<dependency> 
<groupId>org.glassfish</groupId> 
<artifactId>javax.faces</artifactId> 
<version>2.2.10</version> 
</dependency> 

<!-- Hibernate --> 
<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate-core</artifactId> 
<version>4.3.4.Final</version> 
</dependency> 

<dependency> 
<groupId>org.jboss.logging</groupId> 
<artifactId>jboss-logging</artifactId> 
<version>3.3.0.Final</version> 
</dependency> 
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> 
<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate-validator</artifactId> 
<!--   <version>4.3.2.Final</version> --> 
<version>5.2.4.Final</version> 
</dependency> 
<!-- MySQL --> 
<dependency> 
<groupId>mysql</groupId> 
<artifactId>mysql-connector-java</artifactId> 
<version>5.1.30</version> 
<scope>provided</scope> 
</dependency> 

<!-- Spring --> 
<dependency> 
<groupId>org.springframework.security</groupId> 
<artifactId>spring-security-web</artifactId> 
<version>${spring.security.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework.security</groupId> 
<artifactId>spring-security-config</artifactId> 
<version>${spring.security.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-jdbc</artifactId> 
<version>${spring.version}</version> 
</dependency> 

<!-- SPRING DATA JPA - https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa --> 
<dependency> 
<groupId>org.springframework.data</groupId> 
<artifactId>spring-data-jpa</artifactId> 
<version>1.10.2.RELEASE</version> 
</dependency> 

<dependency> 
<groupId>commons-logging</groupId> 
<artifactId>commons-logging</artifactId> 
<version>1.1.1</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> 
<dependency> 
<groupId>org.apache.commons</groupId> 
<artifactId>commons-lang3</artifactId> 
<version>3.4</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api 'INFO: CDI @ViewScoped bean functionality unavailable' http://weld.cdi-spec.org/ 
--> 

<dependency> 
<groupId>org.jboss.weld.servlet</groupId> 
<artifactId>weld-servlet</artifactId> 
<version>2.3.5.Final</version> 
</dependency> 

<!-- Primefaces --> 
<dependency> 
<groupId>org.primefaces</groupId> 
<artifactId>primefaces</artifactId> 
<version>5.3</version> 
</dependency> 

<!-- Primefaces Theme --> 
<!-- https://mvnrepository.com/artifact/org.primefaces.extensions/all-themes --> 
<dependency> 
<groupId>org.primefaces.themes</groupId> 
<!-- <artifactId>all-themes</artifactId> --> 
<artifactId>bootstrap</artifactId> 
<version>1.0.8</version> 
</dependency> 

<!-- Email --> 
<dependency> 
<groupId>javax.mail</groupId> 
<artifactId>mail</artifactId> 
<version>1.4.5</version> 
<scope>provided</scope> 
</dependency> 
<dependency> 
<groupId>org.apache.commons</groupId> 
<artifactId>commons-email</artifactId> 
<version>1.3.3</version> 
</dependency> 


<!-- JUnit » 4.12 --> 
<!-- https://mvnrepository.com/artifact/junit/junit --> 
<dependency> 
<groupId>junit</groupId> 
<artifactId>junit</artifactId> 
<version>4.12</version> 
</dependency> 

<!-- slf4j-log4j --> 

<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-api</artifactId> 
<version>2.6.2</version> 
</dependency> 

<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-core</artifactId> 
<version>2.6.2</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/org.webjars/font-awesome --> 
<dependency> 
<groupId>org.webjars</groupId> 
<artifactId>font-awesome</artifactId> 
<version>4.6.3</version> 
</dependency> 

</dependencies> 

私は何かが私のpom.xmlで、あるいはTomcatの8.5で、または何か他のものと間違っている可能性があることを疑います。しかし、あまり残っていません...

ありがとうございます。

+0

あなたは、[このリンク](https://musingsinjava.wordpress.com/2014/11/02/enabling-jsfを考慮してみてください-2-2-and-cdi-1-2-on-tomcat-8 /) – deosha

+0

tommeeを使って...簡単に – Kukeltje

+0

その例外は役に立たない。これは、基本的に、WARをデプロイできないことを通知する要約の例外です。実際にデプロイメントに失敗した根本的な原因の例外を見つけるためには、サーバーログでさらに先読みする必要があります。その部分はあなたの質問に対する答えを表します。 – BalusC

答えて

0

SOLUTION

私はすでにない正しい方法で明らかにする前にしようとしたが、アノテーションインデクサまたはJandex、ライブラリが欠けていたようです。適切なライブラリではなく、適切なスコープではありません。

後にこの構成に

を適用プラス

<dependency> 
    <groupId>org.jboss</groupId> 
    <artifactId>jandex</artifactId> 
    <version>1.2.4.Final</version> 
</dependency> 

以下の依存性は細かい作業を開始するようです。

だから、私のpom.xmlの関連セクションだった:

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-web-api</artifactId> 
    <version>7.0</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>javax.enterprise</groupId> 
    <artifactId>cdi-api</artifactId> 
    <version>1.2</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>org.jboss.weld.servlet</groupId> 
    <artifactId>weld-servlet</artifactId> 
    <version>2.3.5.Final</version> 
    <scope>runtime</scope> 
</dependency> 

<dependency> 
    <groupId>org.jboss</groupId> 
    <artifactId>jandex</artifactId> 
    <version>1.2.4.Final</version> 
</dependency> 
関連する問題