[英]Exported jar file doesn't regconize SqlMapConfig.xml
I'd like to export my Java project using Eclipse Export capability. 我想使用Eclipse导出功能导出Java项目。 My project includes many Spring libs.
我的项目包括许多Spring库。 I did right click project/Export/JAR file, chose project, checked everything of the project, specified Main Class.
我确实右键单击了project / Export / JAR文件,选择了project,检查了项目的所有内容,指定了Main Class。 When I run it with arguments, errors occur.
当我使用参数运行它时,会发生错误。 How to fix it?
如何解决?
F:\Downloads\MyProject>java -jar release.jar --d 2014/03/17 --l 1 --s 9001
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/b
eans/factory/BeanFactory
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.B
eanFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more
Update: I tried to export it as Runnable JAR file. 更新:我试图将其导出为可运行的JAR文件。 It shows the below error.
它显示以下错误。 (Sorry I cannot post whole error log because of security)
(抱歉,由于安全原因,我无法发布整个错误日志)
....
Invocation of init method failed; nested exception is java.io.
FileNotFoundException: ibatis\SqlMapConfig.xml (The system cannot find the path
specified)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.
preInstantiateSingletons(DefaultListableBeanFactory.java:567)
at org.springframework.context.support.AbstractApplicationContext.finish
BeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:464)
at org.springframework.context.support.FileSystemXmlApplicationContext.<
init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<
init>(FileSystemXmlApplicationContext.java:84)
at net.webike.japan.spring.batch.GlobalEstimateProcessExec.process(Globa
lEstimateProcessExec.java:148)
at net.webike.japan.spring.batch.GlobalEstimateProcessExec.main(GlobalEs
timateProcessExec.java:120)
Caused by: java.io.FileNotFoundException: ibatis\SqlMapConfig.xml (The system ca
nnot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at org.springframework.core.io.FileSystemResource.getInputStream(FileSys
temResource.java:113)
at org.springframework.orm.ibatis.SqlMapClientFactoryBean.buildSqlMapCli
ent(SqlMapClientFactoryBean.java:336)
at org.springframework.orm.ibatis.SqlMapClientFactoryBean.afterPropertie
sSet(SqlMapClientFactoryBean.java:291)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 13 more
Update: spring.xml 更新: spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Database -->
<bean id="test" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://myip/myProject?useUnicode=yes&characterEncoding=SJIS</value>
</property>
<property name="username">
<value>test</value>
</property>
<property name="password">
<value>test</value>
</property>
<property name="maxActive" value="30" />
<property name="maxIdle" value="8" />
<property name="maxWait" value="-1" />
<property name="validationQuery" value="select version()" />
</bean>
<bean id="test" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>ibatis/SqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref local="dsGlobalRanking" />
</property>
</bean>
<bean id="SomethingDAO"
class="mypackage.SomethingDAOImpl"
scope="singleton">
<constructor-arg>
<ref bean="test" />
</constructor-arg>
</bean>
</beans>
Then I load it 然后我加载
String contextPath = "classpath:spring.xml";
BeanFactory context =
(BeanFactory) new FileSystemXmlApplicationContext(contextPath);
Assuming you have SqlMapConfig.xml inside the Jar, for example in the position: 假设您在Jar中有SqlMapConfig.xml ,例如在以下位置:
/res/ibatis/SqlMapConfig.xml
/res/ibatis/SqlMapConfig.xml
You should reference it in the spring.xml file as the following: 您应该在spring.xml文件中按以下方式引用它:
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:/res/ibatis/SqlMapConfig.xml"/>
<property name="dataSource" ref="yourDataSource"/>
</bean>
(note the classpath: marker) (注意类路径:标记)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.