当前位置: 首页 > 知识库问答 >
问题:

如何在Windows服务器上部署java jersey和Grizzly

施默
2023-03-14

我在mac os X上开发了jersey web服务服务器。我一直在使用maven命令行:mvn exec:java运行它进行测试,它工作得很好。我目前正在Grizzly中运行我的web服务。

    null

这就是我编译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/httpserver at java.lang.class.getDeclaredMethods 0(原生方法)at java.lang.class.privateGetDeclaredMethods(class.java:2531)at java.lang.class.getMethod0(class.java:2774)at 86)由:java.lang.ClassNotFoundException:org.glassfish.grizzly.http.server.httpserver at java.net.URLClassLoader$1.run(URLClassLoader.java:366)at java.net.URLClassLoader$1.run(URLClassLoader.java:355)at java.security.AccessController.doprivileged(本机方法)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)atoader.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>

共有1个答案

公良鸿光
2023-03-14

您需要使用Apache Maven Shade插件(或类似的插件)来构建您的Uber Jar(一个包含所有依赖项的Jar)。然后将这个jar放到服务器上,并使用以下命令运行:

java-jar bla.jar path_to_possible_config_file

 类似资料:
  • 安装与升级 我们测试用的系统是 Windows 2008 server R2 SP1。 下载安装 Windows 版 Seafile 服务器 安装 Seafile 为 Windows 服务 所用端口说明 升级 注意:默认情况下,Seafile 需要用到 8000, 8082 两个端口。 服务器管理 垃圾回收不再需要的数据块 常见问题 如果您安装 Seafile 服务器失败, 请首先查看seafse

  • 问题内容: 我在这里从https://www.tutorialspoint.com/reactjs/reactjs_jsx.htm创建了一个基本的React App ,我想在基于Apache的服务器上运行此测试代码,我知道我需要创建一个可分发的构建,但是我无法弄清楚该怎么做,无法找到明确的说明。 我已经在Apache服务器上看到了这篇React,js的文章,但是除了指导原则之外没有什么 问题答案:

  • 我们希望将 ASP.NET MVC Web 应用程序和 Windows 服务部署到弹性豆茎。我们使用.exe来处理 Web 应用程序的部署。该服务和 Web 应用程序共享配置和库。要部署服务,我的计划是: 将 Windows 服务 exe 包含在 Web 部署包 \bin 目录中,并将服务和 Web 应用程序一起部署 使用 .eb 扩展文件安装服务 但是,这似乎不起作用,因为在安装webdeplo

  • 将 Seafile 服务器作为 Windows 服务安装的好处 在您的所有用户注销后 Seafile 服务器能够继续保持运行 系统启动时,即使没有用户登录, Seafile 服务器也会开始运行 如何作为 Windows 服务安装 右击 Seafile 服务器托盘图标,选择”安装为 Windows 服务”选项 在弹出的对话框中,点击是按钮 如果操作成功,将会弹出一个对话框提示您”已经成功安装 Sea

  • 注意:升级之前,你需要先停止 Seafile 服务器 解压新版本服务器 假设升级之前,你的目录结构是: C:/SeafileProgram |______ seafile-server-1.7.0/ 那么,升级的第一步是下载新版本的程序包,并解压到文件夹 `C:/SeafileProgram` 下面。 C:/SeafileProgram |___

  • 安装 Python 2.7.11 32 位版本 下载并安装 python 2.7.11 32 位版本 将 python2.7 的安装路径添加到系统的环境变量中 (PATH 变量)。比如:如果您将 python 2.7.11 安装在C:Python27路径下,那么就将C:Python27添加到环境变量中。 注意:一定要使用 Python 2.7.11 32 位版本。64 位版本或不是 2.7.11