Как развернуть java-джерси и Grizzly на Windows Server

Я разработал сервер веб-службы Джерси на Mac OS X. Я тестировал, запустив его с помощью командной строки maven: mvn exec:java, и он отлично работает. В настоящее время я запускаю свои веб-сервисы в гризли.

Теперь мне нужно развернуться на Windows Server 2008. Что мне делать?

Я читал документацию по развертыванию на джерси здесь.

  1. Нужно ли следовать разделам с 4.2 (модель приложения JAX-RS) до 4.4 (настройка сканирования пути к классам)?
  2. Я просто запускаю командную строку maven в Windows? то есть: mvn exec:java
  3. Нужно ли компилировать в файл jar? Я попытался скомпилировать файл jar, но столкнулся с ошибками.

Вот как я скомпилировал файл jar: mvn -Dmaven.test.skip=true package
Вот как я запустил файл jar: java -jar application.jar. Вот ошибка:

MyName-MacBook-Pro: target myname$ java -jar application-1.0-SNAPSHOT.jar Исключение в потоке "main" java.lang.NoClassDefFoundError: org/glassfish/grizzly/http/server/HttpServer at java.lang.Class.getDeclaredMethods0 (Собственный метод) в java.lang.Class.privateGetDeclaredMethods(Class.java:2531) в java.lang.Class.getMethod0(Class.java:2774) в java.lang.Class.getMethod(Class.java:1663) в sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) в sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) Вызвано: java.lang.ClassNotFoundException: org.glassfish.grizzly.http.server.HttpServer в java.net.URLClassLoader$1.run(URLClassLoader.java:366) в java.net.URLClassLoader$1.run(URLClassLoader.java:355) в java.security.AccessController.doPrivileged(собственный метод) в java.net.URLClassLoader. findClass(URLClassLoader.java:354) в java.lang.ClassLoader.loadClass(ClassLoader.java:425) в sun.misc.Launc her$AppClassLoader.loadClass(Launcher.java:308) в java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... еще 6

Вот содержимое моего pom.xml:

http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>org.company</groupId>
<artifactId>application</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>application</name>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey</groupId>
            <artifactId>jersey-bom</artifactId>
            <version>${jersey.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-grizzly2-http</artifactId>
    </dependency>
    <!-- uncomment this to get JSON support:
     <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
    </dependency>
    -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
        <scope>test</scope>
    </dependency>

  <!--  Gson: Java to Json conversion -->
  <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.2.4</version>
    <scope>compile</scope>
  </dependency>

  <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version>        </dependency>
          <!-- Apache Log4J -->       <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>          <version>1.2.17</version>
  </dependency>
      </dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <inherited>true</inherited>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <archive>
                  <manifest>
                      <addClasspath>true</addClasspath>
                      <classpathPrefix>lib</classpathPrefix>
                      <mainClass>org.company.Main</mainClass>
                  </manifest>
              </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>org.company.Main</mainClass>
            </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                  <mainClass>org.company.Main</mainClass>
              </manifest>
            </archive>
          </configuration>            </plugin>
    </plugins>
</build>

<properties>
    <jersey.version>2.7</jersey.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </project>

person chrizonline    schedule 28.05.2014    source источник
comment
у кого-нибудь есть идеи??   -  person chrizonline    schedule 29.05.2014


Ответы (1)


Для создания Uber Jar вам необходимо использовать плагин Apache Maven Shade (или аналогичный плагин). (баночка со всеми включенными зависимостями). Затем перенесите эту банку на свой сервер и запустите:

java -jar bla.jar PATH_TO_POSSIBLE_CONFIG_FILE

person user3811473    schedule 23.07.2014
comment
Если вы включите рабочий пример, я изменю свой отрицательный голос на положительный. Но это не помогает в его нынешнем виде. - person Adam Arold; 02.09.2014