首页 文章

尝试从Eclipse向Wildfly 8部署war时出现NullPointerException

提问于
浏览
0

当我尝试直接从Eclipse部署 war 到WildFly时,我收到一个错误 . 这只发生在我从Eclipse部署 war 时,没有问题,当我手动将war复制到Wildfly的standalone / deployments目录时 .

昨天它工作,从那时起没有对应用程序进行配置更改(没有新的maven依赖项, web.xmlpersistence.xml 等没有变化),只是一些代码修改 . 添加了一些 Java 8 代码,也许这可能是问题所在 . 但是之前我们在项目中有 Java 8 代码,这不是问题 .

堆栈跟踪:

12:13:38,595 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 228) JBAS011409: Starting Persistence Unit (phase 2 of 2) Service 'user-rest.war#mfss-user'
12:13:38,611 INFO  [org.hibernate.dialect.Dialect] (ServerService Thread Pool -- 228) HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL9Dialect
12:13:38,611 INFO  [org.hibernate.engine.jdbc.internal.LobCreatorBuilder] (ServerService Thread Pool -- 228) HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
12:13:38,637 INFO  [org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory] (ServerService Thread Pool -- 228) HHH000397: Using ASTQueryTranslatorFactory
12:13:38,827 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."user-rest.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."user-rest.war".WeldStartService: Failed to start service
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_20]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_20]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_20]
Caused by: java.lang.NullPointerException
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:213)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3933)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:52)
    at org.jboss.weld.resources.SharedObjectCache.getTypeClosureHolder(SharedObjectCache.java:98)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedParameter.initTypeClosure(BackedAnnotatedParameter.java:46)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotated.<init>(BackedAnnotated.java:19)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedParameter.<init>(BackedAnnotatedParameter.java:39)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedParameter.of(BackedAnnotatedParameter.java:32)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.initParameters(BackedAnnotatedMethod.java:51)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.initParameters(BackedAnnotatedMethod.java:27)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedCallable.<init>(BackedAnnotatedCallable.java:34)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.<init>(BackedAnnotatedMethod.java:38)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedMethod.of(BackedAnnotatedMethod.java:32)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:193)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.computeValue(BackedAnnotatedType.java:186)
    at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:35)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$EagerlyInitializedLazyValueHolder.<init>(BackedAnnotatedType.java:154)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedMethods.<init>(BackedAnnotatedType.java:186)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.<init>(BackedAnnotatedType.java:66)
    at org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.of(BackedAnnotatedType.java:47)
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:83)
    at org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:80)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:52)
    at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:80)
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:175)
    at org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:194)
    at org.jboss.weld.bootstrap.BeanDeployer.loadAnnotatedType(BeanDeployer.java:119)
    at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:96)
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62)
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_20]
    ... 3 more

12:13:38,832 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "user-rest.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"user-rest.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"user-rest.war\".WeldStartService: Failed to start service
    Caused by: java.lang.NullPointerException"}}
12:13:38,845 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "user-rest.war" (runtime-name : "user-rest.war")
12:13:38,846 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014777:   Services which failed to start:      service jboss.deployment.unit."user-rest.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."user-rest.war".WeldStartService: Failed to start service

web.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<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">
</web-app>

beans.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_1_0.xsd">
    <alternatives>
    </alternatives>
</beans>

persistence.xml中:

<persistence version="2.1"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">


    <persistence-unit name="mfss-user" transaction-type="JTA">
        <description>Default Persistence Unit for mfss-user.</description>
        <jta-data-source>java:jboss/datasources/mfss-user</jta-data-source>
        <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
        <properties>
            <property name="hibernate.cache.use_second_level_cache" value="false" />
            <property name="hibernate.cache.use_query_cache" value="false" />

            <property name="hibernate.show_sql" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

我发现其他人之前有类似的问题,但我看不到任何解决方案:https://developer.jboss.org/message/905207

我尝试过各种Project-> Clean,MavenProject-> Clean,WildflyServer-> Clean等 .

我使用的是Ubuntu 14.04,Wildfly 8,Java 8(Oracle JDK),Eclipse Luna,Maven

编辑: mvn dependency:tree

[INFO] 
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ user-rest ---
[INFO] com.domainname.user:user-rest:war:1.0-SNAPSHOT
[INFO] +- com.domainname.user:user-common:jar:1.0-SNAPSHOT:compile
[INFO] |  +- com.intdomainname.ihg:constituent-api:jar:14.6.0-SNAPSHOT:compile
[INFO] |  |  +- commons-lang:commons-lang:jar:2.6:compile (version managed from 2.4)
[INFO] |  |  +- org.jvnet.jaxb2_commons:jaxb2-basics-runtime:jar:0.5.2:compile
[INFO] |  |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.2:compile
[INFO] |  +- com.intdomainname.ihg:constituent-utils:jar:14.6.0-SNAPSHOT:compile
[INFO] |  |  +- com.intdomainname.qhg.hub.schemas:Messages:jar:14.6.0-SNAPSHOT:compile
[INFO] |  |  +- commons-vfs:commons-vfs:jar:1.0:compile
[INFO] |  |  |  \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] |  |  +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] |  |  +- com.sun.jersey:jersey-client:jar:1.15:compile
[INFO] |  |  +- com.sun.jersey:jersey-core:jar:1.15:compile
[INFO] |  |  +- com.sun.jersey:jersey-json:jar:1.15:compile
[INFO] |  |  |  +- org.codehaus.jettison:jettison:jar:1.1:compile
[INFO] |  |  |  +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:compile
[INFO] |  |  |  |  \- javax.xml.bind:jaxb-api:jar:2.2.2:compile
[INFO] |  |  |  |     \- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] |  |  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile
[INFO] |  |  |  \- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile
[INFO] |  |  +- com.thoughtworks.xstream:xstream:jar:1.4.2:compile
[INFO] |  |  |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] |  |  |  \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] |  |  +- apache-log4j:log4j:jar:1.2.14:compile
[INFO] |  |  +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.2:compile
[INFO] |  |  +- org.apache.activemq:activemq-core:jar:5.5.0:compile
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1.1:compile
[INFO] |  |  |  +- org.apache.activemq:activeio-core:jar:3.1.2:compile
[INFO] |  |  |  +- org.apache.activemq:kahadb:jar:5.5.0:compile
[INFO] |  |  |  +- org.apache.activemq.protobuf:activemq-protobuf:jar:1.1:compile
[INFO] |  |  |  +- org.osgi:org.osgi.core:jar:4.1.0:compile
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:jar:1.0.1:compile
[INFO] |  |  |  +- org.springframework:spring-context:jar:3.0.3.RELEASE:compile
[INFO] |  |  |  |  +- org.springframework:spring-aop:jar:3.0.3.RELEASE:compile
[INFO] |  |  |  |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  |  |  |  +- org.springframework:spring-beans:jar:3.0.3.RELEASE:compile
[INFO] |  |  |  |  +- org.springframework:spring-core:jar:3.0.3.RELEASE:compile
[INFO] |  |  |  |  +- org.springframework:spring-expression:jar:3.0.3.RELEASE:compile
[INFO] |  |  |  |  \- org.springframework:spring-asm:jar:3.0.3.RELEASE:compile
[INFO] |  |  |  +- commons-net:commons-net:jar:2.0:compile
[INFO] |  |  |  \- org.jasypt:jasypt:jar:1.7:compile
[INFO] |  |  \- org.apache.activemq:activemq-pool:jar:5.5.0:compile
[INFO] |  |     \- commons-pool:commons-pool:jar:1.5.4:compile
[INFO] |  \- javax:javaee-api:jar:7.0:compile
[INFO] |     \- com.sun.mail:javax.mail:jar:1.5.1:compile (version managed from 1.5.0)
[INFO] |        \- javax.activation:activation:jar:1.1.1:compile
[INFO] +- com.domainname.user:user-ejb:jar:1.0-SNAPSHOT:compile
[INFO] |  +- com.domainname.user:user-jpa:jar:1.0-SNAPSHOT:compile
[INFO] |  |  +- org.mockito:mockito-all:jar:1.9.5:compile
[INFO] |  |  +- com.h2database:h2:jar:1.4.181:compile
[INFO] |  |  +- org.hibernate:hibernate-entitymanager:jar:4.3.1.Final:compile
[INFO] |  |  |  +- org.jboss.logging:jboss-logging:jar:3.1.1.GA:compile
[INFO] |  |  |  +- org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1:compile
[INFO] |  |  |  +- org.hibernate:hibernate-core:jar:4.3.1.Final:compile
[INFO] |  |  |  |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  |  |  \- org.jboss:jandex:jar:1.1.0.Final:compile
[INFO] |  |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  |  |  \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] |  |  |  +- org.hibernate.common:hibernate-commons-annotations:jar:4.0.4.Final:compile
[INFO] |  |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] |  |  |  +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.0.0.Final:compile
[INFO] |  |  |  \- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] |  |  \- org.hibernate:hibernate-annotations:jar:3.4.0.GA:compile
[INFO] |  |     +- org.hibernate:ejb3-persistence:jar:1.0.2.GA:compile
[INFO] |  |     \- org.hibernate:hibernate-commons-annotations:jar:3.1.0.GA:compile
[INFO] |  +- com.intdomainname.health:identity-api:jar:14.6.0-SNAPSHOT:compile
[INFO] |  \- com.intdomainname.health:identity-client-helper:jar:14.6.0-SNAPSHOT:compile
[INFO] |     \- apache-codec:commons-codec:jar:1.2:compile
[INFO] +- com.domainname.mfss.common:mfss-common-rest:jar:1.1.0-SNAPSHOT:compile
[INFO] |  \- com.domainname.mfss.common:mfss-common-api:jar:1.1.0-SNAPSHOT:compile
[INFO] +- org.jboss.resteasy:jaxrs-api:jar:3.0.6.Final:provided
[INFO] +- org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec:jar:1.0.0.Final:provided
[INFO] +- javax.enterprise:cdi-api:jar:1.1:provided
[INFO] |  \- javax.inject:javax.inject:jar:1:provided
[INFO] +- org.jboss.resteasy:resteasy-hibernatevalidator-provider:jar:3.0.8.Final:provided
[INFO] |  +- org.hibernate:hibernate-validator:jar:5.0.3.Final:provided (version managed from 4.3.1.Final)
[INFO] |  |  +- javax.validation:validation-api:jar:1.1.0.Final:provided
[INFO] |  |  \- com.fasterxml:classmate:jar:1.0.0:provided
[INFO] |  \- org.jboss.weld.se:weld-se:jar:2.1.0.Final:provided
[INFO] +- org.jboss.resteasy:resteasy-jaxrs:jar:3.0.8.Final:provided
[INFO] |  +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.1_spec:jar:1.0.1.Final:provided
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.2.1:provided
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.2.1:provided
[INFO] |  |  \- commons-codec:commons-codec:jar:1.6:provided
[INFO] |  +- commons-io:commons-io:jar:2.1:provided
[INFO] |  \- net.jcip:jcip-annotations:jar:1.0:provided
[INFO] +- junit:junit:jar:4.11:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.mockito:mockito-core:jar:1.9.5:test
[INFO] |  \- org.objenesis:objenesis:jar:1.0:test
[INFO] +- org.powermock:powermock-module-junit4:jar:1.5.4:test
[INFO] |  \- org.powermock:powermock-module-junit4-common:jar:1.5.4:test
[INFO] |     +- org.powermock:powermock-core:jar:1.5.4:test
[INFO] |     \- org.powermock:powermock-reflect:jar:1.5.4:test
[INFO] +- org.powermock:powermock-api-mockito:jar:1.5.4:test
[INFO] |  \- org.powermock:powermock-api-support:jar:1.5.4:test
[INFO] \- org.slf4j:slf4j-api:jar:1.7.6:compile

pom.xml without dependencies:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>mfss-user</artifactId>
        <groupId>com.domainname.user</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>user-rest</artifactId>
    <packaging>war</packaging>
    <name>user-rest</name>
    <description>REST resources for mfss-user</description>

    <dependencies>
        ...
        dependencies
        ...
    </dependencies>

    <build>
        <finalName>user-rest</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <webResources>
                        <resource>
                            <!-- this is relative to the pom.xml directory -->
                            <directory>target/apidocs</directory>
                        </resource>
                    </webResources>
                    <archive>
                        <manifestEntries>
                            <Dependencies>org.codehaus.jackson.jackson-mapper-asl</Dependencies>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-service-docs</id>
                        <phase>generate-resources</phase>
                        <configuration>
                            <show>private</show>
                            <doclet>com.hypnoticocelot.jaxrs.doclet.ServiceDoclet</doclet>
                            <docletArtifact>
                                <groupId>com.hypnoticocelot</groupId>
                                <artifactId>jaxrs-doclet</artifactId>
                                <version>0.0.2</version>
                            </docletArtifact>
                            <reportOutputDirectory>${project.build.directory}</reportOutputDirectory>
                            <useStandardDocletOptions>false</useStandardDocletOptions>
                            <additionalparam>-apiVersion 1.0 -docBasePath ./ -apiBasePath
                                services</additionalparam>
                            <tags>
                                <tag>
                                    <name>errorResponse</name>
                                    <!-- Http error code for method and type -->
                                    <placement>tm</placement>
                                    <head>Http error code:</head>
                                </tag>
                            </tags>
                        </configuration>
                        <goals>
                            <goal>javadoc</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

2 回答

  • 1

    根据您的评论,我似乎已经好几次了 . 我会试着解释一下你:

    您正在使用maven来构建项目并打包WAR . 如果使用maven来构建和部署WAR包,一切都很好,您的应用程序在服务器上按预期运行 . 如果使用eclipse的“Run on Server”功能,你总会得到异常,这些异常也可能因项目状态而异(使用maven构建,在eclipse中更改了一些内容,清理了项目并使用eclipse构建,...这可能是由eclipse执行的构建步骤与maven执行的构建步骤不兼容引起的 . 我认为你的pom中可能有一些构建步骤没有被eclipse“构建器”所覆盖,因此丢失会导致不同的错误,具体取决于你是否在部署之前使用maven构建了项目,你联盟的变化类型 .

    对不起,如果这听起来有点令人困惑,但很难解释这种行为 . 最好是尝试一些不同的工作流程,如:

    • 用maven构建
      使用maven

    • 部署(一切都应该工作)

    • 取消部署并更改一些源代码
      用eclipse进行

    • 部署(可能有效)

    并分析你的pom(s)是否有一些构建步骤看起来像没有maven的eclipse无法覆盖 .

  • 0

    我也遇到了同样的问题,似乎Maven构建与Eclipse部署方式之间存在一些不匹配 . 以某种方式部署已损坏,并且不允许再次重新部署并提供NullPointer . 我通过从Eclipse中删除JBoss并再次添加它来解决它,再次更新了一些自定义配置并启动了 . 有效 . 它是一个解决方法,但解决了我的问题 .

相关问题