使用maven和jetty创建一个可执行jar

 手机用户2502908011 发布于 2023-02-11 18:40

我想使用jetty启动我的应用程序,所以我添加了下面提到的依赖项.当我运行主方法Jetty成功启动.(我正在开发一个struts2 + spring3 + hibernate maven项目,我也可以在tomcat中部署它)

现在我想从战争包装pom创建一个可执行jar.所以我在我的pom中添加了maven-assembly-plugin.(我尝试使用maven jar插件,但它没有添加依赖项)

来源

插件


    
        
        maven-war-plugin
        2.3
        
                 
            
        com.dca.engine.StartDCA
            
             
        WEB-INF/lib/jetty*.jar,WEB-INF/lib/org.apache.taglibs.standard.glassfish*.jar,WEB-INF/lib/org.apache.jasper.glassfish*.jar,WEB-INF/lib/org.eclipse.jdt.core*.jar,WEB-INF/lib/javax.servlet.jsp*.jar,WEB-INF/lib/javax.el*.jar
        \
        
       
       
        org.apache.maven.plugins
        maven-assembly-plugin
        2.4
        
                 
                        jar-with-dependencies
                 
             
            
        com.dca.engine.StartDCA
            
             
        
        
             
                    make-assembly
                    package
                    
                      single
                    
             
        
    
 

    
        src/main/java
        
        **/*.java
        **/*.xml
        
    
    
        src/main/resources
        true
    


嵌入式Jetty


    org.eclipse.jetty
    jetty-server
    8.1.10.v20130312


    org.eclipse.jetty
    jetty-webapp
    8.1.10.v20130312
    


    org.eclipse.jetty
    jetty-jsp
    8.1.10.v20130312
    
 

主要方法

 Server server = new Server(8080);
        System.setProperty("is_DCA", "YES");
        WebAppContext webAppContext = new WebAppContext();
        webAppContext.setResourceBase("/home/myfolder/workspace/app/dca/src/main/webapp");
        webAppContext.setDescriptor("/home/myfolder/workspace/app/dca/src/main/webapp/WEB-INF/web.xml");
        webAppContext.setContextPath("/app");
        server.setHandler(webAppContext);
        server.start();
        server.join();

启动应用程序

我使用java -jar /home/myfolder/workspace/app/dca/target/app-dca-1.0-jar-with-dependencies.jar运行创建的jar

码头始于例外.

INFO  10-12 15:03:01,609 - jetty-8.y.z-SNAPSHOT
INFO  10-12 15:03:01,776 - Initializing Spring root WebApplicationContext
INFO  10-12 15:03:01,776 - Root WebApplicationContext: initialization started
INFO  10-12 15:03:01,843 - Refreshing Root WebApplicationContext: startup date [Tue Dec 10 15:03:01 IST 2013]; root of context hierarchy
INFO  10-12 15:03:01,885 - Loading XML bean definitions from class path resource [applicationContext-dca.xml]
ERROR 10-12 15:03:05,725 - Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/util]
Offending resource: class path resource [applicationContext-dca.xml]

    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:316)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1420)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1413)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)

有没有可能的方法,我可以使用创建的战争开始码头.它在/ WEB-INF/lib /文件夹中有jar,所有属性文件和xml文件都在/ WEB-INF/lib /中我试过运行战争

java -jar /home/myfolder/workspace/app/dca/target/app-dca-1.0.war

但它无法找到主类.

在创建可执行的战争检查sumit的答案时工作

我在这个问题中得到了例外.当我将jetty版本更换为7.6.7.v20120910时,它工作正常

我不知道为什么它不适用于码头8.1.10.v20130312

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有