2011-07-14 7 views
9

Próbuję skonfigurować prostą, restful aplikację internetową, używając tomcat 6.0.32, cxf 2.4.1. Za każdym razem, gdy wysyłam jakieś wywołanie, otrzymuję wyjątek "Nie zdefiniowano fasoli o nazwie" cxf "", gdzie cxf jest moją magistralą.Nie zdefiniowano fasoli o nazwie "cxf"

Patrząc na dziennik aplikacji, widzę, że instancja cxf została utworzona i jest zapisana w pamięci podręcznej.

================ APP LOG BEGIN ======================

910 DEBUGOWANY - tworzenie wspólnej wystąpienie jednoelementowy fasoli „CXF”

910 DEBUGOWANY -

1018 DEBUGOWANY Tworzenie wystąpienie fasoli „CXF” - Chętnie buforowanie fasoli „CXF”, aby umożliwić eliminowanie ewentualnych wzajemnych odwołań

1031 DEBUG - Wstawianie chętnie buforowanej instancji pojedynczego komponentu bean "cxf", który nie został jeszcze w pełni zainicjowany - konsekwencja okrągłej zmiany Řenče

1034 DEBUG - zakończeniu tworzenia wystąpienie fasoli 'CXF'

1035 DEBUGOWANY - przywrócenie pamięci podręcznej wystąpienie jednoelementowy fasoli 'org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor'

1035 DEBUG - Wracając buforowane przykład singleton fasoli 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor'

1035 DEBUG - przywrócenie pamięci podręcznej wystąpienie jednoelementowy fasoli 'org.apache.cxf.bus.spring.BusExtensionPostProcessor'

1035 DEBUG - Tworzenie udostępnionego instancji singleton fasoli „związku”

1035 DEBUG - Tworzenie instancji fasoli „związku”

1035 DEBUG - Chętnie buforowanie fasoli „połączenie”, aby umożliwić rozstrzyganie ewentualnych wzajemnych odwołań

1052 DEBUG - Zakończone tworzenia instancji fasoli 'związku'

1052 DEBUG - Tworzenie udostępnionego instancji singleton fasoli 'connectionService'

1052 DEBUG - Tworzenie í nstance fasoli 'connectionService'

1053 DEBUG - Chętnie buforowanie fasoli 'connectionService' aby umożliwić eliminowanie ewentualnych wzajemnych odwołań

1053 DEBUGOWANY - przywrócenie pamięci podręcznej wystąpienie jednoelementowy fasoli 'związek'

1053 DEBUGOWANY - przywrócenie buforowane przykład singleton fasoli 'CXF'

1121 DEBUGOWANY - wywołanie metody startowy 'tworzyć' na ziarna o nazwie 'connectionService'

1356 DEBUG - zakończeniu tworzenia się stanowisko bean 'connectionService'

1384 DEBUG fecycleProcessor o nazwie 'lifecycleProcessor': używając domyślnego [org.springframework.context.support.DefaultLifecycleProcessor @ 45d1c3cd]

1385 DEBUGOWANY - przywrócenie pamięci podręcznej wystąpienie jednoelementowy fasoli 'lifecycleProcessor'

1387 DEBUG - przywrócenie pamięci podręcznej wystąpienie jednoelementowy fasoli

1387 DEBUG 'CXF' - przywrócenie pamięci podręcznej wystąpienie jednoelementowy fasoli " CXF”

1388 DEBUGOWANY - wywołanie metody startowy 'tworzyć' na ziarna o nazwie 'connectionService'

1391 DEBUG - zakończeniu tworzenia wystąpienie fasoli 'connectionService'

1391 DEBUG - Nie można zlokalizować LifecycleProcessor z nazwą 'lifecycleProcessor': za pomocą domyślnej [[email protected]3299f6]

1391 DEBUG - Wracając pamięci podręcznej wystąpienie singleton fasoli 'lifecycleProcessor'

1391 DEBUGOWANY - Opublikowane korzeń WebApplicationContext jako atrybut ServletContext o nazwie [org.springframework.web.context.WebApplicationContext.ROOT]

1391 INFORMACJE - root WebApplicationContext: inicjalizacja zakończona w 1390 ms

================ APP LOG END ======================

Ale kiedy przychodzi żądanie, zawsze kończy się niepowodzeniem, mówiąc, że nie może znaleźć fasoli.

===================== Log Tomcat (localhost) Rozpocznij ============

INFO: Inicjowanie Wiosna korzeń WebApplicationContext

14 lipca 2011 08:57:03 org.apache.catalina.core.ApplicationContext zalogować

ciężkie: StandardWrapper.Throwable

org.springframework. beans.factory.NoSuchBeanDefinitionException: nie zdefiniowano komponentu bean o nazwie "cxf"

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527) 

at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083) 

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274) 

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 

at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1079) 

at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:58) 

at org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:54) 

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) 

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809) 

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129) 

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 

at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864) 

at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) 

at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665) 

at java.lang.Thread.run(Thread.java:662) 

===================== Tomcat (localhost) Log Koniec ==================

Jedyne, co mogę wymyślić to to, że komponent bean jest wstawiany w jednym kontekście i jest pobierany z innego, ale nie może tego sprawdzić ani znaleźć sposobu obejścia tego. Każda pomoc będzie wielce ceniona.

Odpowiedz

19

ze swojego dziennika błędów, zakładam, że używasz Wiosna, jeśli tak, to trzeba będzie dodać następujące linie do swojego wiosennego Context XML:

<import resource="classpath:META-INF/cxf/cxf.xml"/> 
<import resource="classpath:META-INF/cxf/cxf-extension-xml.xml"/> 
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/> 

nadzieję, że to pomaga.

+1

Dodajesz tylko "" wystarczyło w moim przypadku. –

1

W przypadku, gdy ktoś inny się tu dostanie i używa mulesoft esb. Problem występuje także w tym systemie. Aby rozwiązać problem, dodaj następującą sekcję przed definicją przepływów.

<spring:beans> 
    <spring:import resource="classpath:META-INF/cxf/cxf.xml" /> 
    <spring:import resource="classpath:META-INF/cxf/cxf-extension-xml.xml" /> 
    <spring:import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
    <spring:bean class="org.apache.cxf.bus.spring.Jsr250BeanPostProcessor" /> 
    <spring:bean id="classname" name="classname" class="some.implemented.interface.path" /> 
</spring:beans> 
0

Dodaj te zależności w pliku pom:

<dependency> 
   <groupId>org.apache.cxf</groupId> 
   <artifactId>cxf-rt-rs-extension-search</artifactId> 
   <version>2.6.0</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-rs-extension-providers</artifactId> 
    <version>3.0.1</version> 
</dependency> 
2

Jeśli ktoś potrzebuje konfiguracyjne oparte Wiosna Java dla rozwiązywania tego problemu, są dwie opcje:

można importować CXF. xml do twojej klasy Java Config z:

@ImportResource({ "classpath:META-INF/cxf/cxf.xml" }) 

Lub możesz zdefiniować fasolę programowo w swojej klasie konfiguracji Java z: klasy

@Bean 
public SpringBus cxf() {   
    return new SpringBus(); 
} 

CXF + Wiosna Configuration Java example.

0

Proszę sprawdzić te kroki poniżej:

1) linie wymienione w poniżej powinny być zawarte w wiosennej Context XML:

<import resource="classpath:META-INF/cxf/cxf.xml"/> 
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/> 

2) web.xml powinny być skonfigurowane jak poniżej:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath*:cxf.xml</param-value> 
</context-param> 

3) Zależności w poniżej powinna być dodana wewnątrz pom.xml:

<dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-frontend-jaxrs</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-frontend-jaxws</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-ws-security</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-ws-policy</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-rs-service-description</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 

Jeśli to wszystko zrobił pomoc w rozwiązaniu problemu, ostatnim krokiem jest sprawdzenie konfiguracji WebLogic, tutaj są kroki trzeba sprawdzić na serwerze WebLogic:

  1. upewnij się zdefiniować maszyna na twój serwer.
  2. musisz podać swój serwer i maszynę do wdrożenia, jak poniżej:

Weblogic app deployment

Mam nadzieję, sprawdzając wszystkie kroki Twój problem się rozwiązać.

Cheers