2012-04-26 34 views
10

tôi nhận được các lỗi trong ứng dụng Struts của tôi, trên máy tính phát triển của tôi, nói rằng dường như các file cấu hình của tôi đã lỗi (mà tôi đã kiểm tra và có vẻ ok):org.xml.sax.SAXParseException: Tài liệu không hợp lệ: không tìm thấy ngữ pháp.

org.apache.commons.digester.Digester error 
    SEVERE: Parse Error at line 3 column 15: Document is invalid: no grammar found. 
    org.xml.sax.SAXParseException: Document is invalid: no grammar found. 


org.apache.commons.digester.Digester error 
    SEVERE: Parse Error at line 3 column 15: Document root element "struts-config", must match DOCTYPE root "null". 
    org.xml.sax.SAXParseException: Document root element "struts-config", must match DOCTYPE root "null". 

Rõ ràng, trên máy tính phát triển các ứng dụng quản lý chạy. Tuy nhiên, trên máy chủ triển khai tôi nhận được các lỗi sau đây, mà tôi không biết nếu có thể liên quan:

org.apache.struts.action.ActionServlet handleConfigException 
SEVERE: Parsing error processing resource path /WEB-INF/struts-config.xml java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 

My file struts-config.xml: http://pastebin.com/i0XanZZt web.xml My file: http://pastebin.com/jMPAdSUm

Điều gì có thể sai ở đây? Thiếu một số lib? Phiên bản lib không chính xác (sử dụng bản phát hành Struts 1 mới nhất)?

Cảm ơn trước!

+0

Bạn có thể xóa loại tài liệu và kiểm tra không? – bluesman

+0

Hey, tôi đã thử nghiệm và tôi nhận được các lỗi tương tự: S – Rui

+0

FWIW, gần đây tôi đã giới thiệu các lỗi tương tự như 2 đầu tiên vào bảng điều khiển trong ứng dụng tôi đang làm việc. Tuy nhiên, mọi thứ dường như hoạt động tốt, vì vậy tôi coi đây là cảnh báo chứ không phải là lỗi. (Tuy nhiên, nó là tốt để sửa chữa bất cứ điều gì gây ra cảnh báo. Tôi vẫn googling vấn đề này.) Lỗi thứ 3 bạn liệt kê là không liên quan, tôi khá chắc chắn. – apollodude217

Trả lời

6

Chỉ cần trải qua những cuộc đấu tranh của một điều gì đó rất giống nhau. Cũng đã nhận được org.xml.sax.SAXParseException: Tài liệu không hợp lệ: không tìm thấy ngữ pháp nào. Nhà phát triển ban đầu đã setValidation (true) cho Digester và sau đó đã cố gắng xác thực bằng cách sử dụng lược đồ. Khi xác nhận hợp lệ được đặt thành true, nó dự kiến ​​một DTD trong khai báo DOCTYPE của XML. Vì vậy, khi người ta không tìm thấy ngoại lệ xảy ra.

Giải pháp: KHÔNG đặt xác thực thành true trên Digester khi xác thực bằng cách sử dụng lược đồ.

Dưới đây là liên kết tốt cho thấy cách thiết lập Digester nơi nó định nghĩa lược đồ cho Digester để sử dụng. Tất nhiên nếu lược đồ được định nghĩa trong xml thì không cần phải xác định lược đồ cho Digester và xác nhận hợp lệ sẽ tự động diễn ra.

http://alvinalexander.com/java/jwarehouse/commons-digester/src/test/java/org/apache/commons/digester/XMLSchemaTestCase.java.shtml

Hope this helps ...

1

Chỉ cần kiểm tra struts.xml, sửa sau và chạy chương trình của bạn.

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 
0

Đối với những người làm JPOS, thêm hai dòng sau trong xml tập tin

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd"> 
0

Got này cố gắng để làm xác nhận XSD sử dụng SAX:

Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 30; Document is invalid: no grammar found. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 

Fix dường như là thêm này :

saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); 

ref: https://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html

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