2011-07-14 10 views
9

Estoy tratando de configurar una aplicación web tranquila y sencilla, usando tomcat 6.0.32, cxf 2.4.1. Cada vez que hago una llamada, obtengo una excepción "No se define bean llamado 'cxf'", donde cxf es mi bus.Ningún bean llamado 'cxf' se define

Al mirar el registro de la aplicación, puedo ver que la instancia de cxf se crea y almacena en caché.

================ APP REGISTRO DE COMENZAR ======================

910 DEBUG - Crear instancia compartida de frijol Singleton 'cxf'

910 DEBUG - Creación de instancia de frijol 'cxf'

1018 DEBUG - con impaciencia el almacenamiento en caché de frijol 'cxf' para permitir la resolución de posibles referencias circulares

1031 DEBUG - Devuelve una instancia de "singleton bean 'cxf' que todavía no se ha inicializado completamente, en caché, como consecuencia de un comentario circular rencia

1034 DEBUG - instancia la creación de acabado de frijol 'cxf'

1035 DEBUG - Volviendo instancia almacenada en caché de frijol Singleton 'org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor'

1035 DEBUG - Volviendo instancia almacenada en caché de frijol Singleton 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor'

1035 DEBUG - Volviendo caché instancia de frijol Singleton 'org.apache.cxf.bus.spring.BusExtensionPostProcessor'

1035 DEBUG - Crear instancia compartida de Singleton frijol 'conexión'

1035 DEBUG - Creación de instancia de frijol 'conexión'

1035 DEBUG - Con impaciencia el almacenamiento en caché de frijol 'conexión' para permitir la resolución de posibles referencias circulares

1052 DEBUG - terminado de crear instancia de frijol 'conexión'

1052 DEBUG - crear instancia compartida de frijol Singleton 'connectionService'

1052 DEBUG - creación i nstance de frijol 'connectionService'

1053 DEBUG - Con impaciencia el almacenamiento en caché de frijol 'connectionService' para permitir la resolución de posibles referencias circulares

1053 DEBUG - Volviendo instancia almacenada en caché de frijol Singleton 'conexión'

1053 DEBUG - Volviendo instancia almacenada en caché de Singleton frijol 'cxf'

1121 DEBUG - la invocación de método init 'crear' en el frijol con el nombre 'connectionService'

1356 DEBUG - terminado de crear en stance de bean 'connectionService'

1384 DEBUG fecycleProcessor con el nombre 'lifecycleProcessor': utilizando por defecto [org.springframework.context.support.DefaultLifecycleProcessor @ 45d1c3cd]

1385 DEBUG - Volviendo instancia almacenada en caché de frijol Singleton 'lifecycleProcessor'

1387 DEBUG - Volviendo instancia almacenada en caché de frijol Singleton 'cxf'

1387 DEBUG - Volviendo instancia almacenada en caché de frijol Singleton ' cxf'

1388 DEBUG - la invocación de método init 'crear' en bean con el nombre 'connectionService'

1391 DEBUG - ejemplo la creación de final de frijol 'connectionService'

1391 DEBUG - No se puede localizar LifecycleProcessor con el nombre 'lifecycleProcessor': el uso por defecto [[email protected]3299f6]

1391 DEBUG - Volviendo instancia almacenada en caché de frijol Singleton 'lifecycleProcessor'

1391 DEBUG - Publicado WebApplicationContext raíz como atributo ServletContext con el nombre [org.springframework.web.context.WebApplicationContext.ROOT]

1391 INFO - WebApplicationContext raíz: inicialización terminada en 1390 ms

================ FIN APP REGISTRO ======================

Pero cuando una solicitud entra, siempre falla diciendo que no puede encontrar el frijol.

==================== Tomcat (localhost) Iniciar registro =====================

INFORMACIÓN: La inicialización de la raíz primavera WebApplicationContext

14 Jul, 2011 08:57:03 AM org.apache.catalina.core.ApplicationContext ingrese

GRAVES: StandardWrapper.Throwable

org.springframework. beans.factory.NoSuchBeanDefinitionException: Ningún bean llamado 'cxf' se define

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) Fin Registro ==================

Lo único que se me ocurre es que el bean se inserta en un contexto y se está recuperando de otro, pero no se puede validar o encontrar una forma de eludirlo. Cualquier ayuda sería muy apreciada.

Respuesta

19

Desde su registro de errores, supongo que utilice la primavera, si es así, tendrá que añadir siguientes líneas a su XML Contexto de primavera:

<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"/> 

Espero que esto ayude.

+1

Adición única "" era suficiente en mi caso. –

1

En caso de que alguien más llegue aquí y esté usando mulesoft esb. El problema también está presente en este sistema. Para solucionar el problema, agregue la siguiente sección antes de la definición de los flujos.

<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

Añadir estas dependencias en el archivo de 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

Si alguien tiene la configuración basada en la primavera de Java para solucionar este problema, hay dos opciones:

puede importar el cxf. archivo xml en su clase Java Config con:

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

O puede definir el bean programáticamente en su clase de configuración de Java con: Clase

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

configuración de Java + Primavera CXF example.

0

Por favor, compruebe los siguientes pasos en continuación:

1) mencionados en líneas a continuación deben ser incluidos en su primavera Contexto XML:

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

2) Web.xml debe estar configurado de la siguiente manera:

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

3) dependencias de continuación deben añadirse dentro de su 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> 

Si todo esto ni ayuda a resolver el problema, el último paso es comprobar la configuración de WebLogic, aquí están los pasos que tiene que comprobar en el servidor WebLogic:

  1. asegurarse de que tiene definir una máquina a su servidor.
  2. es necesario que especifique el servidor y la máquina para la implementación de la siguiente manera:

Weblogic app deployment

espero comprobando todos estos pasos el problema se soluciona.

Saludos

Cuestiones relacionadas