我有一个spring项目,我连接到mongodb做一些CRUD操作。我已经在Netbeans中构建了我的项目并且它工作正常但是当我想制作可执行jar文件时,我用`mvn包编译项目没有错误。我的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>
另外,这是弹簧配置文件
<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>
最佳专家
答案 0 :(得分:1)
如何在项目中定义mongo驱动程序?还有maven?
如果您有一个文件(可能是mehdi-jar-with-dependecies.jar)尝试打开它,(jar是一个zip格式的文件,所以这只是解包)并找到必要的驱动程序/类。
可能mongo驱动程序在Netbeans中可用,但在Jar文件中不存在。
答案 1 :(得分:0)
我使用了这个插件并解决了问题:
<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>