[英]How to set path to web.xml in Maven Jetty Plugin in pom.xml?
[英]How compose web.xml to lauch server side with maven and jetty
我应该在web.xml中放入什么来启动以启动服务器端。 我启动码头,但只有ui Works服务器端未运行
我有下一个文件夹树:
src
|-main
|-java
| |-com
| |-example
| |-test
| |-ServerSide.java
|-webapp
|-index.html
|-WEB-INF
|-web.xml
服务器端类
package com.example.test;
import java.io.IOException;
import java.util.Date;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/testbattle")
public class ServerSide {
@OnOpen
public void onOpen(Session session) throws IOException {
System.out.println("Welcome" + new Date());
session.getBasicRemote().sendText("Hello websockets");
}
}
如果您关心的是启动服务器端端点,那么您可以添加一个main
方法作为您的应用程序入口,但是请注意,这不会让jetty maven插件运行您的应用程序,因为jetty是一个Web容器,因此基于servlet。
package com.example.websocket;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
public class ServerStarter {
public static void main( String[] args ) throws Exception {
Server server = new Server(8080);
final ServletHolder servletHolder = new ServletHolder(new DefaultServlet());
final ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
context.addServlet(servletHolder, "/*");
server.setHandler(context);
WebSocketServerContainerInitializer.configureContext(context);
server.start();
server.join();
}
}
如果您打算在一个普通的web应用程序使用WebSockets,你必须注册一个的WebSocket处理器(应该是ServerSide
在你的情况下),以JettyServlet
(这应该是亚型``)和注册后( JettyServlet
)到Web .xml文件而不是ServerSide
类:
web.xml :
<web-app> <display-name>WebSocketApp</display-name> <servlet> <servlet-name>wsservlet</servlet-name> <servlet-class>com.example.test.MyJettyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>wsservlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
MyJettyServlet :
package com.example.test; public class MyJettyServlet extends WebSocketServlet { @Override public void configure(WebSocketServletFactory factory) { factory.register(ServerSide.class); } }
服务器端 :
@WebSocket public class ServerSide { @OnOpen public void onOpen(Session session) throws IOException { System.out.println("Welcome" + new Date()); session.getBasicRemote().sendText("Hello websockets"); } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.