Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Jetty и автономный веб сервер в виде jar-файла / 10 сообщений из 10, страница 1 из 1
09.08.2016, 13:54
    #39288911
sanringo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
Добрый день. Создал проект в IDE Netbeanse. Задумка была такая: на выходе иметь автономный jar-файл, способный обрабатывать REST запросы. В будущем прикрутить в нём Spring Boot. Запускаться сервер должен командной строкой вида java -jar myServer.jar.
Что я сделал:
JettyStarter.java

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
package com.mycompany.mavenproject1;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.ResourceHandler;

public class JettyStarter {
    public static void main(String[] args) {
        Server server = new Server();
        ServerConnector connector = new ServerConnector(server);
        connector.setPort(8080);
        server.addConnector(connector);
 
        // add handler
        ResourceHandler resource_handler = new ResourceHandler();
        resource_handler.setDirectoriesListed(true);
        resource_handler.setWelcomeFiles(new String[]{ "index.html" });
        resource_handler.setResourceBase(".");
         
        server.setHandler(resource_handler);
 
        try {
            server.start();
            server.join();
        } catch (Throwable t) {
            t.printStackTrace(System.err);
        }
    }
}



pom.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<?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>
    <groupId>com.mycompany</groupId>
    <artifactId>mavenproject1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
    <dependencies>
        <!-- Server, ServerConnector -->
        <dependency> 
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.1.3.v20140225</version>
        </dependency>
     
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
  
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.5.0</version>
                <configuration>
                    <mainClass>com.mycompany.mavenproject1.JettyStarter</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>



Запускаю в Netbeans, сервер стартует, по http://localhost:8080 зайти могу.
Пытаюсь выполнить команду java -jar "D:\Projects\mavenproject1\target\mavenproject1-1.0-SNAPSHOT.jar", выходит ошибка no main manifest attribute, in D:\Projects\mavenproject1\target\mavenproject1-1.0-SNAPSHOT.jar.
mainClass в pom.xml вроде прописан правильно. В чем может быть ошибка?
...
Рейтинг: 0 / 0
09.08.2016, 13:56
    #39288914
sanringo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
Посмотрел, в файле манифеста действительно нет main класса.
...
Рейтинг: 0 / 0
09.08.2016, 14:25
    #39288950
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
sanringoПосмотрел, в файле манифеста действительно нет main класса.
Ну, наверное Maven надо подучить? maven-jar-plugin, например.
...
Рейтинг: 0 / 0
09.08.2016, 14:47
    #39288972
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
Наверное лучше даже maven-assembly-plugin

Ибо сингл jar (и как мимумум jetty dependency уже там в комплекте)

https://www.mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/
...
Рейтинг: 0 / 0
09.08.2016, 15:48
    #39289046
sanringo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
lleming, ошибка сохраняется.
заменил на
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<build>
        <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jar-plugin</artifactId>
              <version>2.6</version>
              <configuration>
                  <archive>
                      <manifest>
                          <mainClass>com.mycompany.mavenproject1.JettyStarter</mainClass>
                      </manifest>
                  </archive>
              </configuration>
          </plugin>
      </plugins>
    </build>


в манифесте появился главный класс. Но появилась другая ошибка Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Connector
...
Рейтинг: 0 / 0
09.08.2016, 15:57
    #39289053
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
Вы принципиально даже документацию по указаным плагинам не прочитали:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.mycompany.mavenproject1.JettyStarter</mainClass>
                            <packageName>com.mycompany.mavenproject1</packageName>
                        </manifest>
                    </archive>
                    <outputDirectory>${target.dir}</outputDirectory>
                </configuration>
            </plugin>



И ещё maven-dependency-plugin для того чтобы скопировать либы. Возможно в assembly это проще конфигурируется?
...
Рейтинг: 0 / 0
09.08.2016, 16:02
    #39289060
sanringo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
Ошибка сохранилась
...
Рейтинг: 0 / 0
09.08.2016, 16:20
    #39289101
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
sanringoОшибка сохранилась
Конструктивно.
Знаком ли вам термин classpath?
Знаете ли вы о том как он прописывается в манифесте?
...
Рейтинг: 0 / 0
10.08.2016, 08:07
    #39289383
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
sanringoДобрый день. Создал проект в IDE Netbeanse. Задумка была такая: на выходе иметь автономный jar-файл, способный обрабатывать REST запросы. В будущем прикрутить в нём Spring Boot.
...
В чем может быть ошибка?

Не мучайте себя, да других тоже.
Сразу создайте проект Spring-boot.
Вот пример .

Замечание по умолчанию в spring-boot используется tomcat.
Но найти пример, как его заменить на jetty, не составит труда.
...
Рейтинг: 0 / 0
10.08.2016, 10:32
    #39289468
sanringo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty и автономный веб сервер в виде jar-файла
Всем спасибо, разобрался
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Jetty и автономный веб сервер в виде jar-файла / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]