2012-12-04 30 views
6

Tôi đang chiến đấu cả ngày với điều này: Tôi có DynamicWebProject. Nó hoạt động tốt. Nhưng tại một số thời điểm, tôi mong muốn làm sạch thêm bình mà không được sử dụng trong dự án. Sau khi làm sạch, tôi đã có một loạt lỗi. Vì vậy, tôi rollback tất cả các thay đổi của tôi (tôi có nghĩa là tôi retuned tất cả các lọ trở lại). Nhưng tôi cũng chơi với Build Path của dự án, của Eclipse, của cấu hình Debug. Thật không may tôi không nhớ những thay đổi này (với công cụ Path). Và khi tôi chạy như ở máy chủ, tomcat cho tôi thấy điều này:Khi chạy tại máy chủ, Eclipse - Tomcat - java.lang.NoClassDefFoundError: javax/servlet/ServletConfig

'

04.12.2012 16:37:43 org.apache.catalina.core.ApplicationContext log 
SEVERE: StandardWrapper.Throwable 
java.lang.NoClassDefFoundError: javax/servlet/ServletConfig 
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.<init>(WarBasedAxisConfigurator.java:103) 
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584) 
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454) 
    at org.apache.axis2.webapp.AxisAdminServlet.init(AxisAdminServlet.java:60) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
04.12.2012 16:37:43 org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /library threw load() exception 
java.lang.NoClassDefFoundError: javax/servlet/ServletConfig 
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.<init>(WarBasedAxisConfigurator.java:103) 
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584) 
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454) 
    at org.apache.axis2.webapp.AxisAdminServlet.init(AxisAdminServlet.java:60) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
04.12.2012 16:37:43 org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
04.12.2012 16:37:43 org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
04.12.2012 16:37:43 org.apache.catalina.startup.Catalina start 
INFO: Server startup in 3556 ms 

'

Tôi thực gắn với cuộc chiến vô tận này. Tôi đang làm gì sai? Eclipse và Tomcat cố gắng nói gì với tôi?


Xong.

So. Cách tôi khôi phục chức năng. Trước hết, dự án của tôi đã được sao lưu trong kho SVN. Tiếp theo, tôi tạo không gian làm việc mới trong Eclipse. không gian làm việc mới trong thư mục khác. Và dự án Checkout từ SVN. Sau đó, tại bước chạy tại máy chủ, tôi bắt gặp lỗi, và thêm một bởi một thư viện bị bỏ lỡ (lọ). Và whoa-la, nó hoạt động! Vì vậy, làm thế nào tôi nghĩ, vấn đề nằm trong cấu hình của eclipce và dự án, cũng trong Run/Debug Configuration. Làm thế nào để tìm lỗi trong cấu hình, tôi không biết :(nhưng tôi sẽ cố gắng ở không gian làm việc cũ.

+0

bạn có thể vui lòng đăng tệp cấu hình servlet của mình không? –

+0

Tôi không thực sự sử dụng bất kỳ servlet bản thân mình. Tôi đoán servlet này cho trục2. Tôi không thay đổi gì trong đó. – miroque

+0

Bạn có kiểm tra xem tất cả các lọ cần thiết có mặt trong $ CALINICA_HOME/lib không? –

Trả lời

8

Bạn đang thiếu servlet-api.jar trong đường dẫn lớp học của bạn. Kiểm tra nó

CẬP NHẬT

1) Right click on project 
2) Got to java build path 
3) Click on add library in right hand side. 
4) Choose server run time. 
5) Click next and select your tom cat server. 
6) Click on finish. 

enter image description here

Sau đó thử lại

+0

Đúng, trong các tìm kiếm của tôi, tôi đã phát hiện ra rằng lỗi này có thể xảy ra với máy chủ-api.jar Nhưng phải viết ở đâu? Tôi đang sử dụng Eclipse. trong DynWebProj, JavaResources-> Libraries-> ApacheTomcatv7.0 - servlet-api.jar - hiện diện. Khi tôi đang cố gắng viết cái lọ này trong "Cấu hình gỡ lỗi .." Tôi nhận được nhiều sai lầm hơn. – miroque

+0

Kiểm tra các bộ phận đã cập nhật của tôi. – Suranga

+0

Không. Tôi đã làm điều này. Nhưng có điều kiện tương tự: (Nhưng có lẽ điều này cho phép một số add.info 'INFO: Tạo cá thể SecureRandom để tạo ID phiên sử dụng [SHA1PRNG] mất [718] mili giây. 2012-12-04 17: 29: 10,067 [WARN ] [host-startStop-1] [. transport.http.AxisAdminServlet] - Ứng dụng web sử dụng org.apache.axis2.transport.http.AxisAdminServlet; vui lòng cập nhật web.xml để sử dụng org.apache.axis2.webapp.AxisAdminServlet thay vì 04.12.2012 17:29:10 org.apache.catalina.core.Application Nhật ký kế tiếp SEVERE: StandardWrapper.Throwable java.lang.NoClassDefFoundError: javax/servlet/ServletConfig' – miroque

1

chuyển đến Java Build Path, đi đến Libraries, click vào Add Library, chọn Server Runtime, nhấp vào Next, chọn máy chủ web của bạn và nhấp vào Hoàn tất. Làm sạch và triển khai để xem nó có hoạt động hay không.

+0

Yep , tôi đã thực hiện nó như trong câu trả lời prevoius. Và cũng dự án sạch sẽ, sạch tomcat thư mục làm việc. vấn đề không biến mất. Có lẽ tôi đã tăng gấp đôi một số lọ? – miroque

+0

Bạn có thể sử dụng 'Ctrl' +' Shift' + 't' và gõ javax.servlet.ServletConfig để xem bạn đã thêm bất kỳ jars trùng lặp nào chưa. Chỉ cần giữ thư viện thời gian chạy này và loại bỏ bất kỳ thư viện/jar nào khác đã cung cấp lớp này và thử một lần. –

+0

Tôi thích kết hợp phím nóng này. Nhưng nó chỉ hiển thị (javax.servlet.ServletConfig) một lần. Vì vậy, tôi không biết nếu nó tăng gấp đôi một số nơi. – miroque

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