首先说一下我的应用场景
- 由于项目需求,我们需要写一个本地的webservice,所以我就选择了jettey搭配jersey来进行开发。
- 选用jettey内嵌式启动的方法,在main()函数中进行服务器的启动。
- 将项目达成jar包,通过java -jar 命令直接启动webservice,注意要指定jar包的执行入口函数
我们只需要在maven的pom.xml文件中加入maven-jar的插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<forceCreation>true</forceCreation>
<archive>
<manifest>
<mainClass>com.gmobile.JettyServer</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
其中<mainClass>com.gmobile.JettyServer</mainClass>
指定jar包执行的main函数,然后直接在项目目录下执行 maven clean package即可将项目达成jar包。由于我的jar包是一个webservice,打包好之后执行java -jar命令
在浏览器输入我的web访问路径:http://localhost:8080/hello
即可成功显示
#######以下是我的jar包的main函数:
public class JettyServer {
private void start() throws Exception {
int port = 8080;
Server server = new Server(port);
ServletContextHandler context = new ServletContextHandler(
ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
ServletHolder sh = new ServletHolder(ServletContainer.class);
sh.setInitParameter(
"com.sun.jersey.config.property.resourceConfigClass",
"com.sun.jersey.api.core.PackagesResourceConfig");
sh.setInitParameter("com.sun.jersey.config.property.packages",
"com.gmobile.api");
context.addServlet(sh, "/*");
server.start();
}
public void stop() throws Exception {
}
public static void main(String[] args) throws Exception {
JettyServer server = new JettyServer();
server.start();
}
}
网友评论