2011-07-14 37 views
9

Tôi đang cố gắng thiết lập một ứng dụng web đơn giản, yên tĩnh, sử dụng tomcat 6.0.32, cxf 2.4.1. Bất cứ lúc nào tôi phát hành bất kỳ cuộc gọi nào, tôi lấy lại ngoại lệ "Không có bean tên 'cxf' được định nghĩa", trong đó cxf là bus của tôi.Không có tên đậu 'cxf' được định nghĩa

Nhìn vào nhật ký ứng dụng, tôi có thể thấy cá thể cxf được tạo và được lưu trong bộ nhớ cache.

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

910 DEBUG - Tạo dụ chia sẻ của đậu singleton 'CXF'

910 DEBUG - Tạo thể hiện của đậu 'CXF'

1018 DEBUG - háo hức bộ nhớ đệm đậu 'CXF' để cho phép giải quyết các tài liệu tham khảo Thông tư tiềm năng

1031 DEBUG - Quay trở lại trường hợp háo hức được lưu trong bộ nhớ cache của bean đơn 'cxf' chưa được khởi tạo đầy đủ - một hệ quả của một vòng tròn rence

1034 DEBUG - tạo ra Ví dụ Hoàn tất của đậu 'CXF'

1035 DEBUG - Trở dụ cache của đậu singleton 'org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor'

1035 DEBUG - Trở lưu trữ thể hiện của đậu singleton 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor'

1035 DEBUG - trở về lưu trữ thể hiện của đậu singleton 'org.apache.cxf.bus.spring.BusExtensionPostProcessor'

1035 DEBUG - Tạo dụ chia sẻ của singleton đậu 'kết nối'

1035 DEBUG - Tạo thể hiện của đậu 'kết nối'

1035 DEBUG - háo hức bộ nhớ đệm đậu 'kết nối' để cho phép giải quyết các tài liệu tham khảo Thông tư tiềm năng

1052 DEBUG - Finished tạo thể hiện của đậu 'kết nối'

1052 DEBUG - tạo dụ chia sẻ của đậu singleton 'connectionService'

1052 DEBUG - tạo i nstance của đậu 'connectionService'

1053 DEBUG - háo hức bộ nhớ đệm đậu 'connectionService' để cho phép giải quyết các tài liệu tham khảo Thông tư tiềm năng

1053 DEBUG - Trở dụ cache của đậu singleton 'kết nối'

1053 DEBUG - Trở Ví dụ cache của singleton đậu 'CXF'

1121 DEBUG - Gọi phương pháp init 'tạo ra' trên đậu với tên 'connectionService'

1356 DEBUG - Hoàn tất tạo trong lập trường của bean 'connectionService'

1384 DEBUG fecycleProcessor với tên 'lifecycleProcessor': sử dụng mặc định [org.springframework.context.support.DefaultLifecycleProcessor @ 45d1c3cd]

1385 DEBUG - Trở dụ cache của đậu singleton 'lifecycleProcessor'

1387 DEBUG - Trở dụ cache của đậu singleton

1387 DEBUG 'CXF' - Quay trở lại ví dụ cache của đậu singleton ' CXF'

1388 DEBUG - Gọi phương pháp init 'tạo ra' trên đậu với tên 'connectionService'

1391 DEBUG - tạo ra Ví dụ Hoàn tất của đậu 'connectionService'

1391 DEBUG - Không thể xác định vị trí LifecycleProcessor với tên 'lifecycleProcessor': sử dụng mặc định [[email protected]3299f6]

1391 DEBUG - Trở dụ cache của đậu singleton 'lifecycleProcessor'

1391 DEBUG - Published WebApplicationContext gốc như ServletContext thuộc tính với tên [org.springframework.web.context.WebApplicationContext.ROOT]

1391 INFO - củ WebApplicationContext: khởi tạo hoàn thành năm 1390 ms

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

Nhưng khi nào một yêu cầu đến, nó luôn luôn thất bại nói rằng nó không thể tìm thấy đậu.

===================== Nhật ký Tomcat (localhost) Bắt đầu ==================

INFO: Khởi xuân gốc WebApplicationContext

14 Tháng Bảy 2011 08:57:03 org.apache.catalina.core.ApplicationContext đăng nhập

NGHIÊM TRỌNG: StandardWrapper.Throwable

org.springframework. beans.factory.NoSuchBeanDefinitionException: Không có bean có tên 'cxf' được định nghĩa

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) Đăng nhập kết thúc ==================

Điều duy nhất tôi có thể nghĩ là đậu được chèn vào trong một ngữ cảnh và được lấy từ một ngữ cảnh khác, nhưng không thể xác thực điều này hoặc tìm cách xung quanh nó. Mọi sự trợ giúp sẽ rất được trân trọng.

Trả lời

19

Từ log lỗi của bạn, tôi giả sử bạn sử dụng Spring, nếu như vậy, bạn sẽ cần phải thêm dòng sau vào mùa xuân Bối cảnh XML của bạn:

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

Hope this helps.

+1

Chỉ thêm "" là đủ trong trường hợp của tôi. –

1

Trong trường hợp bất kỳ ai khác đến đây và đang sử dụng phần mềm ảo. Vấn đề này cũng có mặt trong hệ thống này. Để khắc phục sự cố, hãy thêm phần sau đây trước định nghĩa của luồng.

<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

Thêm những phụ thuộc vào các tập tin 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

Nếu ai đó cần dựa trên cấu hình mùa xuân Java để giải quyết vấn đề này, có hai tùy chọn:

Bạn có thể nhập các CXF. tệp xml vào lớp Java Config của bạn với:

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

Hoặc bạn có thể xác định bean theo chương trình trong lớp Java Configuration của bạn với:

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

CXF + Lớp cấu hình Java mùa xuân example.

0

Vui lòng kiểm tra các bước ở dưới đây:

1) dòng nêu tại dưới đây sẽ được bao gồm trong mùa xuân của bạn Bối cảnh XML:

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

2) web.xml nên được cấu hình như sau:

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

3) Dependencies trong dưới đây sẽ được thêm vào bên trong pom.xml của bạn:

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

Nếu tất cả điều này didnt giúp bạn giải quyết vấn đề của bạn, bước cuối cùng là để kiểm tra cấu hình WebLogic của bạn, sau đây là các bước bạn phải kiểm tra trên máy chủ WebLogic của bạn:

  1. chắc chắn rằng bạn có định nghĩa một máy chủ của bạn.
  2. bạn cần phải xác định máy chủ và máy tính của bạn cho việc triển khai của bạn như sau:

Weblogic app deployment

Tôi hy vọng bằng cách kiểm tra tất cả các bước sau vấn đề của bạn được giải quyết.

Chúc mừng

Các vấn đề liên quan