У меня есть проект JAVA-EE, в котором используется «рестайл-2.2» в моем Intellij 13.1.4.Развертывание веб-проекта Restlet от Intelij до apache tomcat?
Я хочу, чтобы развернуть этот проект Apache Tomcat сервер, но у меня возникли некоторые проблемы.
проекта Структура
1.I имеют некоторые классы JAVA, которые в основном различные веб-сервисы. Все эти классы расширяют класс ServerResource. У этих классов есть методы @Get внутри них, которые будут отвечать на запрос клиента.
2.Then У меня есть класс MyServer, который расширяет Применение класса и в MyServer У меня есть объект класса Router, который в основном маршруты запросы на соответствующие веб-сервисов в зависимости от URI.
3.web.xml - Intellij по умолчанию создает web.xml с версией = "3.1" и добавляет ничего в него. Таким образом, я изменил эту web.xml (Добавление ниже web.xml)
Я сделал конфигурацию артефакты и в моей «война взорвалась» Я следующая структурой
WEB-INF
--classes
-----| All compiled class files
--lib
-----| restlet jar files and json jar files (org.json.jar org.restlet.jar org.restlet.ext.json.jar org.restlet.ext.servlet.jar)
--web.xml
Когда я поставил это разобранном войну моя папка apache tomcat webapps и перезапустите tomcat, тогда я могу получить доступ к файлам html/css/js. Но мои вызовы AJAX всегда дают ERROR 404. Я пробовал все решения из stackoverflow и других веб-сайтов, но ничего не помогло.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- Application class name -->
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>
MyServer
</param-value>
</context-param>
<!-- Restlet adapter -->
<servlet>
<servlet-name>ServerServlet</servlet-name>
<servlet-class>
org.restlet.ext.servlet.ServerServlet
</servlet-class>
</servlet>
<!-- Catch all requests -->
<servlet-mapping>
<servlet-name>ServerServlet</servlet-name>
<url-pattern>/Projects/*</url-pattern>
</servlet-mapping>
</web-app>
MyServer класс
Router classpublic class MyServer extends Application{
public static void main(String []args)
{
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8080);
Application application = new MyServer();
// Attach the application to the component and start it
component.getDefaultHost().attach(application);
try {
component.start();
} catch (Exception e) {
e.printStackTrace();
}
}
//Method for attaching the URIs for web services
public synchronized Restlet createInboundRoot()
{
Router router = new Router(getContext());
//System.out.println("In router");
//Attaching URIsl
router.attach("/Projects/{projectID}/Enclosures/{enclID}/getStructure", StructureCalculations.class);
}
}
И мой AJAX называют URI выглядит так
http://localhost:8080/Projects/p1/Enclosures/e1/getStructure?param1=x¶m2=y