2014-04-24 61 views
0

我有一個外部的jar文件,作爲依賴添加到另一個Web應用程序。當我單獨運行此Jar文件時,它工作正常。沒有找到這樣的Bean定義-Exception

當我包括這在我的web應用程序,我收到以下錯誤

org.springframework.beans.factory.BeanCreationException:錯誤 創建名爲「inviteAuditService」豆:資源 依賴失敗的注射;嵌套的異常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:無類型的 匹配豆 [com.trunym.certificateserver.datajpa.repository.InviteAuditRepository] ​​ 找到依賴性:預期至少1豆,其有資格作爲 自動裝配候選爲此依賴。依賴註釋: {@ javax.annotation.Resource(shareable = true,mappedName =,description =, name =,type = class java.lang.Object,authenticationType = CONTAINER)} at org.springframework.context.annotation。 CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:306) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:517) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactor y.java:456) 在 org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:294) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java :225) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) at org.springframework。 context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 在 org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext的的.java:139) 在 org.springframework.context.support.ClassPathXmlApplicationContext(ClassPathXmlApplicationContext.java:93) 在 com.trunym.medallion.datajpa.factory.AbstractServiceFactory.getMedallionFactoryInstance(AbstractServiceFactory.java:14) 在。 com.trunym.medallion.web.controller.ManageBadgeController.getHomePage(ManageBadgeController.java:27) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java的。 lang.reflect.Method.invoke(Method.java:597)在 org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) 在 org.springframework.web.method.support。InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 在 org.springframework.web.servlet.mvc。 method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 在 org.springframework.web。 servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.do調度(DispatcherServlet.java:900) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 處 javax.servlet.http.HttpServlet.service org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:707) (HttpServlet.java:820)在 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 在 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 在 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 在 org.mortbay.jetty.handler .ContextHandler.handle(ContextHandler.java:726) 在 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 在 org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java :206) 在 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 在 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 在org.mort bay.jetty.Server.handle(Server.java:324)在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 在 org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java :829) 在org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)在 org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:380)在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 在 org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:488) 引起通過: org.springframework.beans.factory.NoSuchBeanDefinitionException:N 匹配bean的類型 [com.trunym.certificateserver.datajpa.repository.InviteAuditRepository] ​​ 發現依賴關係:預計至少有1個bean,其資格爲 autowire此依賴項的候選者。依賴註釋: {@ javax.annotation.Resource(shareable = true,mappedName =,description =, name =,type = class java.lang.Object,authenticationType = CONTAINER)} at org.springframework.beans.factory。 support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793) 在 組織。springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707) 在 org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:438) 在 org.springframework.context.annotation。 CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:416) 在 org.springframework.context.annotation.CommonAnnotationBeanPostProcessor $ ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:549) 在 org.springframework.beans.factory.annotation.InjectionMetadata $ InjectedElement。注射(InjectionMetadata.java:150) 在 org.spring framework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) 在 org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:303) ...... 47多個

這裏是從Web應用程序我的應用程序上下文:

<import resource="classpath*:certificate-server-context.xml" /> 

<bean 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="ignoreUnresolvablePlaceholders" value="false" /> 
     <property name="ignoreResourceNotFound" value="false" /> 
     <property name="locations"> 
      <list> 
       <value>classpath:medallion-config.properties</value> 
      </list> 
     </property> 
     <property name="placeholderPrefix" value="%{" /> 
     <property name="placeholderSuffix" value="}" /> 
    </bean> 


    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
     <property name="order" value="1" /> 

    </bean> 
    <bean id="velocityEngine" 
     class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> 
     <property name="velocityProperties"> 
      <value> 
       resource.loader=class 
       class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader 
      </value> 
     </property> 
    </bean> 
    <context:component-scan base-package="com.test.medallion.web.*" /> 
    <mvc:annotation-driven /> 
    <mvc:default-servlet-handler /> 
    <task:annotation-driven /> 
+1

嗯...你有一個地方'InviteAuditRepository'豆聲明? –

+0

我在外部jar文件中聲明瞭一個名爲'cerserv.jar'的聲明。這包含導入的資源'certificate-server-context.xml'。在這個'InviteAuditService'中有'InviteAuditRepository'自動裝入 –

+0

'certificate -server-context.xml'位於'jar'中? –

回答

1

我設法解決這個問題,這個問題是我在我的web應用程序和外部的jar包衝突的名稱。

而上下文組件掃描出現問題。

感謝, 阿布舍克

相關問題