2011-01-17 28 views
5

Tôi có một ứng dụng web đơn giản trong websphere5. Dưới appDir\WEB-INF\classes\ Tôi có những tập tin này:Nhập XSL gây ra FileNotFoundException trong ứng dụng web

  • main.xslt
  • templates.xslt

main.xslt chứa các hướng dẫn

<xsl:import href="templates.xsl" /> 

nhưng ứng dụng không thành công khi main.xslt được sử dụng trong mã Java. Làm cách nào để chỉ định đường dẫn đến các tệp XSL đã nhập nếu tất cả chúng đều nằm trong cùng một thư mục (WEB-INF\classes\)?

Văn bản của ngoại lệ:

java.io.FileNotFoundException: d: \ Program Files \ WebSphere \ AppServer1 \ templates.xsl (. Hệ thống không thể tìm thấy các tập tin định )

Trả lời

3

Bạn cần cung cấp một trình phân giải tùy chỉnh để xử lý các gói. Trong một ứng dụng web, không có gì đảm bảo rằng một hệ thống tập tin có thể truy cập được, vì bạn có thể chạy ra khỏi một tệp tin WAR. Hãy nhìn vào giao diện javax.xml.transform.URIResolverTransformer.setURIResolver()

+2

Câu trả lời đúng nhưng chung, thiếu giải thích: uri tương đối cho khai báo 'xsl: import' sẽ được giải quyết bằng URI định kiểu làm URI cơ sở. Cho dù người quản lý XSLT có thể xử lý lược đồ URI đó hay nó có quyền ưu tiên, thì đó là một vấn đề khác. Từ: http://www.w3.org/TR/xslt#import * Phần tử 'xsl: import' có thuộc tính' href' có giá trị là tham chiếu URI xác định biểu định kiểu cần nhập. URI tương đối được giải quyết tương đối với URI cơ sở của phần tử 'xsl: import' * –

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