Я не могу найти способ получить доступ к файлу javascript, который я поместил в папку проекта плагина, который я пытаюсь расширить. Предоставленное решение от this topi c, к сожалению, не сработало. Я надеюсь, что это не c для веб-приложения (скажем, его имя thiswebappname
), для которого я пишу плагин. Я начал с расширения существующего примера плагина, который имеет следующую структуру проекта:
Структура проекта
myprojectsnamespace.myproject
- Системная библиотека JRE
- Зависимости подключаемых модулей
- src
- myprojectsnamespace.myproject
- META-INF
- webapp
- build.properties
- plugin. xml
вот некоторые из файлов, которые, как я подозреваю, могут быть полезны для поиска решения:
build.properties
source.my-servlet.jar = src/
src.includes = my-servlet.jar
bin.includes = META-INF/,\
webapp/,\
plugin.xml
plugin. xml
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
<extension
point="com.thiswebappname.portal.tomcat.webapps">
<webapp
contextRoot="webapp"
name="thiswebappname/myprojectsnamespace"/>
</extension>
</plugin>
Мне почему-то не удается загрузить содержимое myScript.js
из MyServlet
. Сервлет вроде как опубликован web.xml
:
<...>
<servlet>
<servlet-name>MyServlet</servlet-name>
<display-name>My Servlet</display-name>
<servlet-class>myprojectnamespace.myproject.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/LoadScript</url-pattern>
</servlet-mapping>
В MyServlet.java
Я пробовал следующее, все безуспешно:
MyServlet. java
public class MyServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp ) throws IOException{
resp.setContentType("text/html");
resp.getWriter().println("<script>");
resp.getWriter().println(new String(Files.readAllBytes(Paths.get("getPopup.js")),StandardCharsets.UTF_8));
//above line doesn't find the file. I also tried "myprojectsnamespace.myproject/webapp/WEB-INF/javascript/myScript.js" etc., same problem
resp.getWriter().println("</script>");
/* following approach has the same problem, i.e. can't find the file:
resp.setContentType("text/html");
resp.getWriter().println("<script language='text/javascript' src='myScript.js'>");
resp.getWriter().println("</script>"); */
}
Когда я ввожу http://myserver/thiswebappname/LoadScript
в браузере, doGet()
действительно вызывается из MyServlet
, как и ожидалось, но скрипт не загружается. Я упускаю что-то очевидное? Я не нашел способа «опубликовать sh» файл. js, как это было с MyServlet в сети. xml.