2013-04-12 16 views
11

(Tôi đã đọc các câu hỏi khác về chủ đề này, nhưng không ai trong số họ đã giúp)Chỉ có thể nhập một loại. ABC giải quyết một gói

Được rồi, tôi đang cố gắng nhập một lớp Java vào tệp JSP của tôi, nhưng Tomcat cung cấp cho tôi lỗi:

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: [16] in the generated java file: [I:\path\to\index_jsp.java] 
Only a type can be imported. org.runas.XKCDUtils resolves to a package 

An error occurred at line: 7 in the jsp file: /index.jsp 
XKCDUtils cannot be resolved 
4: String data = null; 
5: int finalComic = 1; 
6: int comicNo = 1; 
7: finalComic = XKCDUtils.getFinalComic(); 
8: 
9: if (request.getParameter("page") != null) 
10:   comicNo = Integer.parseInt(request.getParameter("page")); 

Những tuyên bố nhập khẩu trong tập tin JSP của tôi là:

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %> 

các phần có liên quan của cấu trúc thư mục của tôi là:

webapps 
`-ROOT 
`-index.jsp 
|-WEB-INF 
    `-web.xml 
    |-classes 
    `-org 
    `-runas 
    `-XKCDUtils.class 

Tôi bị nhầm lẫn vì org.runas.XKCDUtils resolves to a package, nhưng rõ ràng đây là tệp lớp, theo tôi tin là thư mục chính xác.

Trợ giúp, vui lòng!

(Và đừng chastise tôi vì sử dụng tập lệnh, tôi đang cố gắng dọn dẹp chúng!)

+0

Hãy xem [câu trả lời này] (http://stackoverflow.com/questions/1858463/java-error-only-a-type-can-be-imported-xyz-resolves-to-a-package) . Tách nhập khẩu thành 3 phần riêng biệt và có thể thêm dấu chấm phẩy vào cuối. –

Trả lời

7

Được rồi, điều này thật kỳ lạ. Tôi chia nhập khẩu thành ba mục nhập,

<%@page import="java.io.*" %> 
<%@page import="java.net.*" %> 
<%@page import="org.runas.XKCDUtils" %> 

và nó được quyết định một cách kỳ diệu. Sau đó, khi tôi đã thay đổi hàng nhập khẩu trở lại,

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %> 

nó quyết định một cách kỳ diệu để tiếp tục hoạt động.

Có thể nó có liên quan đến việc khởi động lại Tomcat? Vâng, nó hoạt động ngay bây giờ, anyway.

+2

_Maybe nó có một cái gì đó để làm với khởi động lại Tomcat? _ - Khá nhiều: sau khi cài đặt một thư viện, bạn cần phải khởi động lại Tomcat để tải nó. Vì vậy, rõ ràng, câu trả lời cho câu hỏi của bạn là: khởi động lại Tomcat. Vui lòng thêm câu trả lời mới và chọn câu trả lời như được chấp nhận. – Alberto

2

Tôi không có ý tưởng những gì chính xác gây ra lỗi, nhưng tôi đã thay đổi

<%@page import="java.io.*, java.net.*, org.runas.XKCDUtils" %> 

để

<%@page import="java.io.*, java.net.*, org.runas.*" %> 

và nó làm việc. Giải thích của tôi về lỗi là vì một số lý do Tomcat nghĩ rằng XKCDUtils là một gói, không phải là một lớp trong gói. Nhập bằng * sau đó làm cho nó rõ ràng rằng nó đang nhập các lớp.

3

Tôi đã gặp vấn đề tương tự; giải quyết bằng cách dừng máy chủ (Tomcat trong trường hợp của tôi) và xây dựng lại dự án.

+0

Khởi động lại máy chủ đã khắc phục sự cố cho tôi. – Templar