【问题标题】:Unable to Creating Executable Jar in Spring无法在 Spring 中创建可执行 Jar
【发布时间】:2018-07-21 00:46:00
【问题描述】:

我有一个 spring 项目,我连接到 mongodb 来执行一些 CRUD 操作。我已经在 Netbeans 中构建了我的项目,它工作正常,但是当我想制作可执行的 jar 文件时,我使用 `mvn package 编译项目而没有错误。我的jar文件执行util到行

ApplicationContext ctx = new GenericXmlApplicationContext("classpath:spring/SpringConfig.xml");

但是从上面的行我得到了这个错误:

线程 "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException 中的异常:配置问题:找不到 XML 模式命名空间的 Spring NamespaceHandler [http://www.springframework.org/schema/data/mongo] 违规资源:类路径资源 [spring/SpringConfig.xml] 在 org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) 在 org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) 在 org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80) 在 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:318) 在 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1435) 在 org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428) .....

这是我的 pom.xml 的一部分

<build>
    <finalName>mehdi</finalName>
    <plugins>

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>org.faracloud.runner.App</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>

还有,这是spring配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/data/mongo
      http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<mongo:mongo host="192.168.1.5" port="27017" />
<mongo:db-factory dbname="mydb" mongo-ref="mongo" username="user1"
    password="1234" />

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>

专家推荐

【问题讨论】:

    标签: java spring mongodb maven jar


    【解决方案1】:

    我用了这个插件,问题解决了:

      <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>xxx.App</mainClass>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>appassembler-maven-plugin</artifactId>
                <version>1.3</version>
                <configuration>
                    <programs>
                        <program>
                            <mainClass>xxx.App</mainClass>  
    
                        </program>                      
                    </programs>
                </configuration>
            </plugin>
    

    【讨论】:

      【解决方案2】:

      您如何在项目中定义 mongo 驱动程序?也是由 maven 编写的?

      如果你有一个文件(可能是 mehdi-jar-with-dependecies.jar)尝试打开它,(jar 是一个 zip 格式的文件,所以这只是解压缩)并找到是否有必要的驱动程序/类。

      可能 mongo 驱动程序在 Netbeans 中可用,但在 Jar 文件中不存在。

      【讨论】:

      • 如何使它们可用?
      • 尝试更新 spring-data-mongodb 依赖,尝试修改 Jar 文件或使用此项目指定其他类路径。如果您确定 jar 中缺少某些内容,则可能缺少其他依赖项。在这种情况下,请尝试使用 maven shade-plugin。您的问题与其他典型的依赖问题非常相似,例如:baeldung.com/…
      猜你喜欢
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2017-08-20
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      相关资源
      最近更新 更多