Maven 2 寻找Webstart Maven插件示例应用程序
我正在寻找使用Webstart Maven插件的完整应用程序的源代码Maven 2 寻找Webstart Maven插件示例应用程序,maven-2,java-web-start,sample,maven-webstart-plugin,Maven 2,Java Web Start,Sample,Maven Webstart Plugin,我正在寻找使用Webstart Maven插件的完整应用程序的源代码 有什么想法吗?我在一个涉及嵌入式tomcat服务器的概念框架中尝试了webstart插件。该插件绑定到包阶段,需要很长时间才能执行,我建议从命令行手动调用它。它在目标目录中生成一个包含jnlp文件和所有依赖项的zip文件。然后可以提取该文件并将其放在Web服务器上。pom中的url应指向服务器上的此路径。启动时,应用程序在本地主机端口8080上运行一个tomcat服务器,该服务器带有一个简单的servlet,该servlet仅
有什么想法吗?我在一个涉及嵌入式tomcat服务器的概念框架中尝试了webstart插件。该插件绑定到包阶段,需要很长时间才能执行,我建议从命令行手动调用它。它在目标目录中生成一个包含jnlp文件和所有依赖项的zip文件。然后可以提取该文件并将其放在Web服务器上。pom中的url应指向服务器上的此路径。启动时,应用程序在本地主机端口8080上运行一个tomcat服务器,该服务器带有一个简单的servlet,该servlet仅以字符串形式返回请求的路径 让我知道这是否适合你 这是项目的pom,插件配置主要是从文档中复制的 这是位于
src/main/java/net/jhorstmann/embeddedtomcat7/App.java的主类
package net.jhorstmann.embeddedtomcat7;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.Wrapper;
import org.apache.catalina.startup.Tomcat;
public class App {
public static void main(String[] args) throws LifecycleException, ServletException, IOException {
File tmpDir = new File(System.getProperty("java.io.tmpdir"));
File webappDir = new File(tmpDir, "embeddedtomcat7");
webappDir.mkdir();
final Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
tomcat.setBaseDir(tmpDir.getAbsolutePath());
tomcat.getConnector().setURIEncoding("UTF-8");
String contextPath = "/";
Context context = tomcat.addContext(contextPath, webappDir.getAbsolutePath());
Wrapper wrapper = tomcat.addServlet(contextPath, "Test", new TestServlet());
//Wrapper wrapper = tomcat.addServlet(contextPath, "Async", new AsyncServlet());
//wrapper.setAsyncSupported(true);
wrapper.addMapping("/*");
tomcat.start();
tomcat.getServer().await();
}
}
package net.jhorstmann.embeddedtomcat7;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.println("<h1>" + req.getPathInfo() + "</h1>");
writer.close();
}
}
最后是一个servlet,位于src/main/java/net/jhorstmann/embeddedtomcat7/TestServlet.java
package net.jhorstmann.embeddedtomcat7;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.Wrapper;
import org.apache.catalina.startup.Tomcat;
public class App {
public static void main(String[] args) throws LifecycleException, ServletException, IOException {
File tmpDir = new File(System.getProperty("java.io.tmpdir"));
File webappDir = new File(tmpDir, "embeddedtomcat7");
webappDir.mkdir();
final Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
tomcat.setBaseDir(tmpDir.getAbsolutePath());
tomcat.getConnector().setURIEncoding("UTF-8");
String contextPath = "/";
Context context = tomcat.addContext(contextPath, webappDir.getAbsolutePath());
Wrapper wrapper = tomcat.addServlet(contextPath, "Test", new TestServlet());
//Wrapper wrapper = tomcat.addServlet(contextPath, "Async", new AsyncServlet());
//wrapper.setAsyncSupported(true);
wrapper.addMapping("/*");
tomcat.start();
tomcat.getServer().await();
}
}
package net.jhorstmann.embeddedtomcat7;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.println("<h1>" + req.getPathInfo() + "</h1>");
writer.close();
}
}
package net.jhorstmann.embeddedtomcat7;
导入java.io.IOException;
导入java.io.PrintWriter;
导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
公共类TestServlet扩展了HttpServlet{
@凌驾
受保护的void doGet(HttpServletRequest-req,HttpServletResponse-resp)抛出ServletException,IOException{
相应的setContentType(“text/html;charset=utf-8”);
PrintWriter writer=resp.getWriter();
writer.println(“+req.getPathInfo()+”);
writer.close();
}
}
关于这个插件的一些注意事项(它的文档非常糟糕):
除非您指定它,否则它不会使用template.vm文件,如
roll gen template.vm
为了制造战争:
如果您想使用JnlpDownloadServlet(java提供的标准版本)来提供文件,而不是上面的代码(并让插件生成一个可供使用的version.xml文件,等等),基本上您需要创建一个war类型的新项目,并以jnlp下载servlet目标为目标(它似乎不支持使用当前pom项目中的类创建war)然后,您将使用
部分代替单个
部分,该部分可以列出多个jar依赖项。您可能还需要修改web.xml文件。
有一个pom的例子
如果您有其他评论,请随意编辑,这是一个社区wiki。搜索Sonatype公共存储库时,不会显示任何依赖它的内容:(谢谢!我将看一看代码。运行它的命令是什么?在上面的pom.xml文件中需要注意两件事:第一件是包
,第二件是jnlp内联
。我在查找main类时遇到了这个插件的问题。我曾尝试将jnlp
更改为jnlp内联
,但它没有成功。)没有执行任何操作。这是因为jnlp
不需要阶段,但jnlp inline
需要阶段。