Я новичок в maven и spring-boot, я загрузил проект maven (эмулятор ssh через веб-интерфейс) githubМой файл jar, созданный из проекта maven со всеми его зависимостями, является исполняемым, но не запускает его основной класс
Я попытался сделать этот проект исполняемым банком, чтобы впоследствии использовать его в своем проекте веб-приложений, чтобы предоставить пользователям возможность использования эмулятора ssh.
Я прочитал некоторые документы и узнал, как создать исполняемый файл jar со всеми зависимостями от maven.
После записи на пленку эту команду java -jar jar_file_with_all_dependencies.jar
пружинные загрузки возвращает это сообщение
Starting ApplicationStarter on admin-PC with PID 37824 (C:\
Developement\maven-repo\ssh-on-web-master\target\ssh-on-web-1.0-SNAPSHOT- jar- with-dependencies.jar started by admin in C:\Developement\maven-repo\ssh- on-web- master\target)
2016-03-30 14:21:48.856 INFO 37824 --- [ main]ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplication [email protected]: startup date [Wed Mar 30 14:21
:48 GMT+01:00 2016]; root of context hierarchy
2016-03-30 14:21:49.328 INFO 37824 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8081/http
2016-03-30 14:21:49.528 INFO 37824 --- [ main] o.apache.catalina.core
.StandardService : Starting service Tomcat
2016-03-30 14:21:49.528 INFO 37824 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.0.15
2016-03-30 14:21:49.619 INFO 37824 --- [ost-startStop-1] o.a.c.c.C. [Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2016-03-30 14:21:49.620 INFO 37824 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 764ms
2016-03-30 14:21:49.690 INFO 37824 --- [ main] o.s.s.c.ThreadPoolTask
Scheduler : Initializing ExecutorService 'defaultSockJsTaskScheduler'
2016-03-30 14:21:49.880 INFO 37824 --- [ main] o.s.w.s.handler.Simple
UrlHandlerMapping : Mapped URL path [/shell/**] onto handler of type [class org.springframework.web.socket.sockjs.support.SockJsHttpRequestHandler]
2016-03-30 14:21:49.960 INFO 37824 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081/http
2016-03-30 14:21:49.960 INFO 37824 --- [ main] com.kodcu.ApplicationStarter : Started ApplicationStarter in 1.334 seconds (JVM running for 1.585)
Это сообщение означает, что файл банку начал свой главный-класс, но в действительности ничего не произошло. почему мой веб-браузер не запускает автоматически страницу localhost, поэтому я могу манипулировать эмулятором ssh? Нужно ли вводить что-то еще в URL?
Для получения более подробной информации: Основной класс:
package com.kodcu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
import org.springframework.web.socket.handler.PerConnectionWebSocketHandler;
@SpringBootApplication
@EnableWebSocket
public class ApplicationStarter implements WebSocketConfigurer {
public static void main(String[] args) {
SpringApplication.run(ApplicationStarter.class, args);
}
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/shell").withSockJS();
}
@Bean
public WebSocketHandler myHandler() {
return new PerConnectionWebSocketHandler(ShellSocket.class);
}
}
ServletInitializer.java:
package com.kodcu;
import java.util.concurrent.TimeUnit;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ApplicationStarter.class);
}
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.setPort(8081);
factory.setSessionTimeout(50, TimeUnit.MINUTES);
return factory;
}
}
pom.xml:
<?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>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.0.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>ssh-on-web</groupId>
<artifactId>ssh-on-web</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.hierynomus</groupId>
<artifactId>sshj</artifactId>
<version>0.11.0</version>
</dependency>
<dependency>
<groupId>net.sf.expectit</groupId>
<artifactId>expectit-core</artifactId>
<version>0.6.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<!-- nothing here -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.kodcu.ApplicationStarter</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Я попытался как Http: // Localhost: 8081/оболочка, http: // Localhost: 8081 // оболочки и они return http Status 404. –
Я отредактировал мой pom.xml и изменил тип пакета на jar. теперь, когда я набираю localhost: 8081/shell, он возвращает «Добро пожаловать в SockJS!». :( –