1.applicationContext.xml:
在applicationContext.xml配置了 <context:component-scan base-package="aa" /> ,自动扫描bean功能(扫描包aa下的bean)
2.AA.java内容:
package aa;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AA{
public static void main(String[] args){
BB bb = (BB)(new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml"}).getBean("bb"));
System.out.println("@@@" + bb.a);
}
}
3.BB.java内容:
package aa;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component("bb")
@Scope("prototype")
public class BB{
String a = "ssssssssss";
}
4.将其打成jar包运行报错:
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitio
nException: No bean named 'bb' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.
getBeanDefinition(DefaultListableBeanFactory.java:387)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMerg
edLocalBeanDefinition(AbstractBeanFactory.java:968)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBea
n(AbstractApplicationContext.java:881)
at aa.AA.main(AA.java:11)
5.在eclipse中运行一切正常(在eclipse运行时使用Component注解没有问题),但打成jar后就报错了,将applicationContext.xml中加上 <bean id="bb" class="aa.BB" /> 打成jar后运行就正常了,是不是打成jar后spring的自动扫描bean的功能就失效了还是哪里配置错误了或myeclipse多点什么但打成jar后未和jar一起导出来?
导入的jar包有 (打成jar后已在MANIFEST.MF中配置了Class-Path,不会是下边的jar未引用的问题)
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/absoluteLayout.jar"/>
<classpathentry kind="lib" path="lib/antlr-2.7.6.jar"/>
<classpathentry kind="lib" path="lib/asm-attrs.jar"/>
<classpathentry kind="lib" path="lib/asm.jar"/>
<classpathentry kind="lib" path="lib/aspectjrt.jar"/>
<classpathentry kind="lib" path="lib/aspectjweaver.jar"/>
<classpathentry kind="lib" path="lib/cglib-2.1.3.jar"/>
<classpathentry kind="lib" path="lib/classes12.jar"/>
<classpathentry kind="lib" path="lib/commons-beanutils-1.8.0.jar"/>
<classpathentry kind="lib" path="lib/commons-collections-3.2.1.jar"/>
<classpathentry kind="lib" path="lib/commons-logging.jar"/>
<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/ejb3-persistence.jar"/>
<classpathentry kind="lib" path="lib/ezmorph-1.0.5.jar"/>
<classpathentry kind="lib" path="lib/hibernate-annotations.jar"/>
<classpathentry kind="lib" path="lib/hibernate-commons-annotations.jar"/>
<classpathentry kind="lib" path="lib/hibernate-entitymanager.jar"/>
<classpathentry kind="lib" path="lib/javassist-3.8.0.GA.jar"/>
<classpathentry kind="lib" path="lib/jaxen-1.1.1.jar"/>
<classpathentry kind="lib" path="lib/jboss-archive-browsing.jar"/>
<classpathentry kind="lib" path="lib/jcommon-1.0.10.jar"/>
<classpathentry kind="lib" path="lib/jfreechart-1.0.6.jar"/>
<classpathentry kind="lib" path="lib/json-lib-2.2.2-jdk15.jar"/>
<classpathentry kind="lib" path="lib/jta.jar"/>
<classpathentry kind="lib" path="lib/jtds-1.2.jar"/>
<classpathentry kind="lib" path="lib/junit-4.5.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.9.jar"/>
<classpathentry kind="lib" path="lib/mina-core-2.0.0-M4.jar"/>
<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.0-bin.jar"/>
<classpathentry kind="lib" path="lib/poi-3.0.1.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.5.6.jar"/>
<classpathentry kind="lib" path="lib/slf4j-jdk14-1.5.6.jar"/>
<classpathentry kind="lib" path="lib/spring.jar"/>
<classpathentry kind="lib" path="lib/swing-layout-1.0.3.jar"/>
<classpathentry kind="lib" path="lib/hibernate3.jar"/>
<classpathentry kind="lib" path="lib/c3p0-0.9.1.jar"/>
<classpathentry kind="lib" path="lib/common-annotations.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath> http://www.javaeye.com/problems/8823也是此问题
在applicationContext.xml配置了 <context:component-scan base-package="aa" /> ,自动扫描bean功能(扫描包aa下的bean)
2.AA.java内容:
package aa;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AA{
public static void main(String[] args){
BB bb = (BB)(new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml"}).getBean("bb"));
System.out.println("@@@" + bb.a);
}
}
3.BB.java内容:
package aa;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component("bb")
@Scope("prototype")
public class BB{
String a = "ssssssssss";
}
4.将其打成jar包运行报错:
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitio
nException: No bean named 'bb' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.
getBeanDefinition(DefaultListableBeanFactory.java:387)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMerg
edLocalBeanDefinition(AbstractBeanFactory.java:968)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBea
n(AbstractApplicationContext.java:881)
at aa.AA.main(AA.java:11)
5.在eclipse中运行一切正常(在eclipse运行时使用Component注解没有问题),但打成jar后就报错了,将applicationContext.xml中加上 <bean id="bb" class="aa.BB" /> 打成jar后运行就正常了,是不是打成jar后spring的自动扫描bean的功能就失效了还是哪里配置错误了或myeclipse多点什么但打成jar后未和jar一起导出来?
导入的jar包有 (打成jar后已在MANIFEST.MF中配置了Class-Path,不会是下边的jar未引用的问题)
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/absoluteLayout.jar"/>
<classpathentry kind="lib" path="lib/antlr-2.7.6.jar"/>
<classpathentry kind="lib" path="lib/asm-attrs.jar"/>
<classpathentry kind="lib" path="lib/asm.jar"/>
<classpathentry kind="lib" path="lib/aspectjrt.jar"/>
<classpathentry kind="lib" path="lib/aspectjweaver.jar"/>
<classpathentry kind="lib" path="lib/cglib-2.1.3.jar"/>
<classpathentry kind="lib" path="lib/classes12.jar"/>
<classpathentry kind="lib" path="lib/commons-beanutils-1.8.0.jar"/>
<classpathentry kind="lib" path="lib/commons-collections-3.2.1.jar"/>
<classpathentry kind="lib" path="lib/commons-logging.jar"/>
<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/ejb3-persistence.jar"/>
<classpathentry kind="lib" path="lib/ezmorph-1.0.5.jar"/>
<classpathentry kind="lib" path="lib/hibernate-annotations.jar"/>
<classpathentry kind="lib" path="lib/hibernate-commons-annotations.jar"/>
<classpathentry kind="lib" path="lib/hibernate-entitymanager.jar"/>
<classpathentry kind="lib" path="lib/javassist-3.8.0.GA.jar"/>
<classpathentry kind="lib" path="lib/jaxen-1.1.1.jar"/>
<classpathentry kind="lib" path="lib/jboss-archive-browsing.jar"/>
<classpathentry kind="lib" path="lib/jcommon-1.0.10.jar"/>
<classpathentry kind="lib" path="lib/jfreechart-1.0.6.jar"/>
<classpathentry kind="lib" path="lib/json-lib-2.2.2-jdk15.jar"/>
<classpathentry kind="lib" path="lib/jta.jar"/>
<classpathentry kind="lib" path="lib/jtds-1.2.jar"/>
<classpathentry kind="lib" path="lib/junit-4.5.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.9.jar"/>
<classpathentry kind="lib" path="lib/mina-core-2.0.0-M4.jar"/>
<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.0-bin.jar"/>
<classpathentry kind="lib" path="lib/poi-3.0.1.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.5.6.jar"/>
<classpathentry kind="lib" path="lib/slf4j-jdk14-1.5.6.jar"/>
<classpathentry kind="lib" path="lib/spring.jar"/>
<classpathentry kind="lib" path="lib/swing-layout-1.0.3.jar"/>
<classpathentry kind="lib" path="lib/hibernate3.jar"/>
<classpathentry kind="lib" path="lib/c3p0-0.9.1.jar"/>
<classpathentry kind="lib" path="lib/common-annotations.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath> http://www.javaeye.com/problems/8823也是此问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货