Я только начал пытаться использовать класс OWASP ESAPI в приложении RESTFul, которое я создаю.
Я установил esapi, следуя их инструкциям на веб-сайте, используя svn, но это не сработало.
Затем я включил файл jar, который мне нужен, вручную, настроив путь сборки и добавив его как внешний файл JAR. Затем он появился в папке Java Resources\Libraries, и все было скомпилировано и опубликовано нормально. Я использую стеклянную рыбу с затмением.
Я не понимаю, как, если я могу скомпилировать код, у стеклянной рыбы нет класса? Нужно ли устанавливать банку на сервер?
Соответствующий код:
import org.owasp.esapi.ESAPI;
String clean = rs.getString(column_name); //saving column data to temp variable
clean = ESAPI.encoder().canonicalize(clean); //decoding data
clean = ESAPI.encoder().encodeForHTML(clean); //encoding data
Вот какую ошибку выдает:
2015-06-29T20:50:16.244+0100|Warning: StandardWrapperValve[Jersey Web Application]: Servlet.service() for servlet Jersey Web Application threw exception
java.lang.NoClassDefFoundError: org/owasp/esapi/ESAPI
at com.pododdle.util.ToJSON.toJSONArray(ToJSON.java:60)
at com.pododdle.dao.MySQL.runDBQuery(MySQL.java:55)
at com.pododdle.service.CategoryService.getAllCategories(CategoryService.java:10)
at com.pododdle.resources.CategoryResource.getCategories(CategoryResource.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)