2011-12-31 6 views
9

Tôi vừa mới nâng cấp lên Tomcat v7. Tôi đang cố gắng bao gồm một cái lọ trong lib mà các lớp java của tôi cần. Đó là DB2JCC4.JAR. Tôi sử dụng điều này để truy cập DB2 trên máy tính lớn của IBM. Điều này được sử dụng để hoạt động tốt trong Tomcat6.Bao gồm DB2JCC4 trong Tomcat 7

Khi tôi bao gồm jar, sau đó tôi nhận được lỗi như:


Deploying web application directory C:\tomcat7\webapps\dbs 
    org.apache.catalina.core.ContainerBase addChildInternal 
    SEVERE: ContainerBase.addChild: start: 
    org.apache.catalina.LifecycleException: Failed to start component 
    ..... 

    caused by: org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is 
    not a Java .class file.... 

Tôi đã thử đặt URIEncoding trong server.xml nhưng điều đó không giúp đỡ.

Khi tôi lấy tệp jar DB2JCC4, tôi không nhận được lỗi khởi động. Tất nhiên, sau đó tôi không thể truy cập DB2! Tôi đánh giá cao bất kỳ đề xuất nào.

Trả lời

14

Hãy thử thay đổi $TOMCAT_HOME/conf/catalina.properties và thêm DB2JCC4.jar đến tomcat.util.scan.DefaultJarScanner.jarsToSkip giá trị tài sản. Nó được sử dụng để tắt quét đường dẫn lớp (được sử dụng trong các triển khai thông số kỹ thuật JavaEE 6).

+0

có! đây là điều cần làm! Tôi đã có cùng một vấn đề, và câu trả lời này đã giúp tôi giải quyết nó. Cảm ơn! – MarcoS

+0

Đã sửa lỗi cho tôi, cảm ơn. –

+0

Cảm ơn, ngoại lệ không còn xảy ra :) Tôi đã hy vọng sẽ có một cách "sửa chữa" các tập tin JAR chính nó, nhưng điều này cũng tốt;) – munyul

0

Nếu bạn đang tự hỏi tại sao sự cố xảy ra ngay từ đầu và không chỉ là giải pháp thay thế, bạn có thể tìm câu trả lời here. IBM đã thừa nhận vấn đề này và đã cung cấp các tùy chọn để sửa chữa nó. Về cơ bản một số tệp lớp bị hỏng.