【发布时间】:2011-11-07 14:53:57
【问题描述】:
我正在尝试编写一个小型库,它既可以在标准 java 应用程序中使用,也可以作为 servlet 的一部分。
我定义了几个重载方法如下:
// imports etc.
public ExampleLibrary {
/**
* This one is meant to be used by a J2SE app
*/
public String processData(Map headers) throws MyException {
// process
// return result
}
/**
* This one is meant to be used by a servlet
*/
public String processData(HttpServletRequest request) throws MyException {
// extract headers from request
// process
// return result
}
// other methods.....
}
这在用作 Servlet 的一部分时效果很好,但是当用作 J2SE 应用程序的一部分时它不起作用。
在我的 J2SE 应用程序中,我执行了以下操作:
ExampleLibrary example = ExampleLibrary.getInstance();
Map headers = new HashMap();
headers.put("someheader1", "someheaderval1");
headers.put("someheader2", "someheaderval2");
String res = example.processData(headers);
我在编译时得到这个: “找不到 javax.servlet.http.HttpServletRequest 无法访问 javax.servlet.http.HttpServletRequest 类文件”
我期待编译器选择正确的 processData() 方法并忽略另一个,因为显然 J2SE 应用程序中没有 Servlet 类文件。任何想法如何解决这个问题?
【问题讨论】:
标签: java servlets compilation overloading classnotfoundexception