2012-09-03 145 views
0

後部署爲null在閱讀了幾個教程後(例如ocpsoft,oracle)我開始使用嵌入式glassfish運行我的hello-world應用程序。它可以與遠程服務器一起工作,但由於某些原因,在使用嵌入式服務器時沒有任何部署。使用嵌入式glassfish服務器

1.)「無法找到javadb客戶端jar文件,默認情況下derby jdbc驅動程序將不可用。」 我正在使用德比,儘管如變量AS_DERBY_INSTALL被設置和導出,似乎無法找到罐子。爲什麼?

2.)「INFO:Deployed null」 爲什麼我的應用程序未部署?

maven在運行時輸出例如作爲「mvn clean install」(不管我是否運行「mvn install embedded-glassfish:run」或「mvn install embedded-glassfish:deploy」)都沒有區別。

行家輸出

[...] 
There are no tests to run. 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[INFO] 
[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ transact --- 
[INFO] Packaging webapp 
[INFO] Assembling webapp [transact] in [/Users/grudom/Daten/IDE/EclipseProjects/workspace/transact/target/transact] 
[INFO] Processing war project 
[INFO] Copying webapp resources [/Users/grudom/Daten/IDE/EclipseProjects/workspace/transact/src/main/webapp] 
[INFO] Webapp assembled in [117 msecs] 
[INFO] Building war: /Users/grudom/Daten/IDE/EclipseProjects/workspace/transact/target/transact.war 
[INFO] WEB-INF/web.xml already added, skipping 
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ transact --- 
[INFO] Installing /Users/grudom/Daten/IDE/EclipseProjects/workspace/transact/target/transact.war to /Users/grudom/.m2/repository/de/exim/transact/1.0-SNAPSHOT/transact-1.0-SNAPSHOT.war 
[INFO] Installing /Users/grudom/Daten/IDE/EclipseProjects/workspace/transact/pom.xml to /Users/grudom/.m2/repository/de/exim/transact/1.0-SNAPSHOT/transact-1.0-SNAPSHOT.pom 
[INFO] 
[INFO] --- maven-embedded-glassfish-plugin:3.1.2.2:run (default) @ transact --- 
Created New Bootstrap ClassLoader. ServerId = maven, ClassPaths = 
ClassPath Element : file:/Users/grudom/.m2/repository/org/glassfish/main/extras/glassfish-embedded-all/3.1.2.2/glassfish-embedded-all-3.1.2.2.jar 
ClassPath Element : file:/Users/grudom/.m2/repository/org/glassfish/embedded/maven-embedded-glassfish-plugin/3.1.2.2/maven-embedded-glassfish-plugin-3.1.2.2.jar 
ClassPath Element : file:/Users/grudom/.m2/repository/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar 
ClassPath Element : file:/Users/grudom/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar 
ClassPath Element : file:/Users/grudom/.m2/repository/org/glassfish/main/common/simple-glassfish-api/3.1.2.2/simple-glassfish-api-3.1.2.2.jar 
03.09.2012 16:28:18 com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient 
INFO: Cannot find javadb client jar file, derby jdbc driver will not be available by default. 
03.09.2012 16:28:18 org.hibernate.validator.internal.util.Version <clinit> 
INFO: HV000001: Hibernate Validator 4.3.0.Final 
03.09.2012 16:28:18 PluginUtil getGlassFish 
INFO: Created GlassFish ServerId = maven, BootstrapProperties = {GlassFish_Platform=Static}, GlassFishRuntime = [email protected]b9e9a3, GlassFishProperties = {embedded-glassfish-config.server.network-config.network-listeners.network-listener.http-listener.enabled=true, embedded-glassfish-config.server.network-config.network-listeners.network-listener.http-listener.port=8080}, GlassFish = [email protected]119a0c4e, GlassFish Status = INIT, TimeTaken = 876 ms 
03.09.2012 16:28:18 com.sun.enterprise.v3.services.impl.GrizzlyService createNetworkProxy 
INFO: Network listener https-listener on port 0 disabled per domain.xml 
03.09.2012 16:28:19 com.sun.enterprise.v3.services.impl.GrizzlyProxy$2$1 onReady 
INFO: Grizzly Framework 1.9.50 started in: 52ms - bound to [0.0.0.0:8080] 
03.09.2012 16:28:19 com.sun.enterprise.v3.server.AppServerStartup run 
INFO: GlassFish Server Open Source Edition 3.1.2.2 (java_re) startup time : Embedded (678ms), startup services(523ms), total(1.201ms) 
03.09.2012 16:28:19 PluginUtil startGlassFish 
INFO: Started GlassFish ServerId = maven, GlassFish = [email protected]119a0c4e, TimeTaken = 747 ms 
03.09.2012 16:28:19 PluginUtil doDeploy 
INFO: Deployed null 
Hit ENTER to redeploy, X to exit 

的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>de.exim</groupId> 
    <artifactId>transact</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>transact Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format> 
     <glassfish.home>/Users/grudom/Programme/glassfish</glassfish.home> 
     <glassfish.adminUser>admin</glassfish.adminUser> 
     <glassfish.adminPassword>admin</glassfish.adminPassword> 
     <glassfish.domain.name>domain1</glassfish.domain.name> 
     <glassfish.domain.host>localhost</glassfish.domain.host> 
     <glassfish.domain.adminPort>4848</glassfish.domain.adminPort> 
     <eclipselink.version>2.4.0</eclipselink.version> 
    </properties> 

    <repositories> 
     <repository> 
      <id>EclipseLink</id> 
      <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url> 
     </repository> 
    </repositories> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>maven2-repository.dev.java.net</id> 
      <name>Java.net Repository for Maven</name> 
      <url>http://download.java.net/maven/glassfish/</url> 
     </pluginRepository> 
    </pluginRepositories> 

    <dependencies> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.eclipse.persistence</groupId> 
      <artifactId>eclipselink</artifactId> 
      <version>${eclipselink.version}</version> 
      <scope>compile</scope> 
     </dependency> 

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

     <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derby</artifactId> 
      <version>10.9.1.0</version> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>${project.artifactId}</finalName> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.3.2</version> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
         <encoding>ISO-8859-1</encoding> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-eclipse-plugin</artifactId> 
        <version>2.9</version> 
        <configuration> 
         <wtpversion>1.5</wtpversion> 
         <downloadSources>true</downloadSources> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 

    <profiles> 
     <profile> 
      <id>glassfish</id> 
      <activation> 
       <activeByDefault>false</activeByDefault> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.glassfish.maven.plugin</groupId> 
         <artifactId>maven-glassfish-plugin</artifactId> 
         <version>2.1</version> 
         <configuration> 
          <terse>false</terse> 
          <echo>true</echo> 
          <debug>true</debug> 
          <glassfishDirectory>${glassfish.home}</glassfishDirectory> 
          <user>${glassfish.adminUser}</user> 
          <adminPassword>${glassfish.adminPassword}</adminPassword> 
          <domain> 
           <name>${glassfish.domain.name}</name> 
           <host>${glassfish.domain.host}</host> 
           <adminPort>${glassfish.domain.adminPort}</adminPort> 
          </domain> 
          <components> 
           <component> 
            <name>${project.artifactId}</name> 
            <artifact>${project.build.directory}/${project.build.finalName}.war</artifact> 
           </component> 
          </components> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
     <profile> 
      <id>embeddedglassfish</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.glassfish.embedded</groupId> 
         <artifactId>maven-embedded-glassfish-plugin</artifactId> 
         <version>3.1.2.2</version> 
         <configuration> 
          <goalPrefix>embedded-glassfish</goalPrefix> 
          <app>test.war</app> 
          <port>8080</port> 
          <contextRoot>test</contextRoot> 
         </configuration> 
         <executions> 
          <execution> 
           <phase>install</phase> 
           <goals> 
            <goal>run</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 
</project> 

當使用

<groupId>org.glassfish</groupId> 
    <artifactId>maven-embedded-glassfish-plugin</artifactId> 
    <version>3.0</version> 

行家投用引起的LifecycleExecutionException:java.io.FileNotFoundEx ception:test.war。查看文件系統test.war甚至沒有創建。如果我更改爲版本3.1,則不會拋出異常,但會再次「部署爲空」。爲什麼沒有生成戰爭文件?

回答

4

最後我發現了這個問題。正確的配置將是

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.glassfish</groupId> 
      <artifactId>maven-embedded-glassfish-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <goalPrefix>embedded-glassfish</goalPrefix> 
       <app>target/${project.build.finalName}.war</app> 
       <port>8080</port> 
       <contextRoot>${project.build.finalName}</contextRoot> 
       <autoDelete>true</autoDelete> 
       <configFile>path_to_File/domain.xml</configFile> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>install</phase> 
        <goals>   
         <goal>run</goal>  
        </goals>   
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

除了引用正確的groupId和version元素「應用程序」需要改變。此外,爲了使用非嵌入式javadb實例,configFile元素指向非嵌入式glassfish服務器的domain.xml。

更多文檔:http://docs.oracle.com/cd/E26576_01/doc.312/e24932/toc.htm

希望,它可以幫助別人了。