Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用build.gradle构建的EAR未正确部署_Java_Deployment_Jboss_Build_Gradle - Fatal编程技术网

Java 使用build.gradle构建的EAR未正确部署

Java 使用build.gradle构建的EAR未正确部署,java,deployment,jboss,build,gradle,Java,Deployment,Jboss,Build,Gradle,我在用build.gradle做耳朵 buildscript { repositories { mavenCentral(); maven{url "https://repository.jboss.org/nexus/content/repositories/releases/"} } configurations { compile testCompile testRu

我在用build.gradle做耳朵

buildscript
{
    repositories
    {
        mavenCentral(); 
        maven{url "https://repository.jboss.org/nexus/content/repositories/releases/"}
    }

    configurations
    {
        compile
        testCompile
        testRuntime
        jacoco
    } 

    dependencies{classpath 'org.ajoberstar:gradle-jacoco:0.3.0'}
}

allprojects
{
    group='com.sial.ecommerce'
    version=''

    repositories
    {
        mavenCentral();
        maven{url"https://repository.jboss.org/nexus/content/repositories/releases/"}
    }

    apply plugin:'java'
    apply plugin:'jacoco';
    apply plugin: 'ear'

    dependencies
    {
        deploy project(path:':app', configuration: 'archives');
        deploy project(path:':firstEJB', configuration: 'archives');
    }

    ear
    {
        version = "";
        archiveName ="XYZ.ear";
        appDirName 'EarContent'
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE;
        caseSensitive = true;
        rootSpec.exclude("**/activation-1.1.jar");
        rootSpec.exclude("**/asm*.jar");
        rootSpec.exclude("**/jboss-*.jar");
        rootSpec.exclude("**/org.jacoco*.jar");
        rootSpec.exclude("**/wildfly-*.jar");
        rootSpec.exclude("**/hibernate-*.jar");
        rootSpec.exclude("**/gradle-*.jar");
        rootSpec.exclude("**/cdi-*.jar");
        rootSpec.exclude("**/org.osgi.*.jar");
        rootSpec.exclude("**/serializer-*.jar");
        rootSpec.exclude("**/arquillian-*.jar");
        rootSpec.exclude("**/resteasy-*.jar");
        rootSpec.exclude("**/guava-*.jar");
        rootSpec.exclude("**/jackson-jaxrs-*.jar");
        rootSpec.exclude("**/jackson-core-asl-*.jar");
        rootSpec.exclude("**/jackson-mapper-asl-*.jar");
        rootSpec.exclude("**/reflections-*.jar");
        rootSpec.exclude("**/metrics-core-*.jar");
        rootSpec.exclude("**/servo-core-*.jar");
        rootSpec.exclude("**/aspectjweaver-*.jar");
        rootSpec.exclude("**/javax.json-*.jar");
        rootSpec.exclude("**/jaxrs-api-*.jar");
        rootSpec.exclude("**/javax.mail-*.jar");
        rootSpec.exclude("**/validation-api-*.jar");
        rootSpec.exclude("**/javassist-*.jar");
        rootSpec.exclude("**/dom4j-*.jar");
        rootSpec.exclude("**/annotations-*.jar");
        rootSpec.exclude("**/javax.inject-*.jar");
        rootSpec.exclude("**/xalan-*.jar");
        rootSpec.exclude("**/el-api-*.jar");
        rootSpec.exclude("**/jsr250-api-*.jar");
        rootSpec.exclude("**/xml-apis-*.jar");
        rootSpec.exclude("**/slf4j-api-1.7.6.jar");
    }
}
其建筑结构:

XYZ.ear
    |
    |------------- lib
    |-------------META-INF
    |--------------firstEJB.jar
    |--------------app.war
当我尝试部署时,无法访问firstEJB.jar中的类

我得到一个错误:

15:49:24,583 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service jboss.deployment.subunit."XYZ.ear"."app.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."XYZ.ear"."app.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of subdeployment "app.war" of deployment "XYZ.ear"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.0.0.Final.jar:8.0.0.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.0.Final.jar:1.2.0.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.0.Final.jar:1.2.0.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_71]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_71]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_71]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: com.sial.ecommerce.core.init.DeepInit from [Module "deployment.XYZ.ear.app.war:main" from Service Module Loader]
    at org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.checkDeclaredApplicationClassAsServlet(JaxrsScanningProcessor.java:292)
    at org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.scanWebDeployment(JaxrsScanningProcessor.java:154)
    at org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.deploy(JaxrsScanningProcessor.java:105)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.0.0.Final.jar:8.0.0.Final]
    ... 5 more
Caused by: java.lang.ClassNotFoundException: com.sial.ecommerce.core.init.DeepInit from [Module "deployment.XYZ.ear.app.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.checkDeclaredApplicationClassAsServlet(JaxrsScanningProcessor.java:290)
DeepInit类位于firstEJB.jar中

当我在调试模式下启动Wildfly服务器并尝试调试时,我发现查找该类的目录与预期的目录不同

它看起来是:

C:/Apps/wildfly-8.0.0.Final/bin/content/XYZ.ear/lib
这是无效的

预期目录为:

C:/Apps/wildfly-8.0.0.Final/standalone/deployments/XYZ.ear
在使用分解方法进行部署时,即。右键单击并在wildfly server中添加项目,效果良好

application.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" id="Application_ID" version="7">
  <display-name>ABC</display-name>
  <module>
    <web>
      <web-uri>app.war</web-uri>
      <context-root>app</context-root>
    </web>
  </module>
  <module><ejb>myfirstEJB.jar</ejb></module>
</application>

所以我可以访问firstEJB.jar中的类?

如果问题不清楚,请告诉我。看起来已经足够清楚了,但很难重现。@Opal我认为问题是关于上下文根。但是如何更改上下文根?使用以下类:。它可能是这样的:ear{deploymentDescriptor{webModuleprojectawar.war.archiveName,customContextPath}}@Opal谢谢。。让我看看这个
C:/Apps/wildfly-8.0.0.Final/standalone/deployments/XYZ.ear