Я пишу RESTful API с использованием Jersey / Tomcat, и я столкнулся с:
javax.servlet.ServletException: Servlet.init() for servlet [com.tuiasi.petru.sop.service.MyApplication] threw exception
.......
java.lang.IllegalStateException: The resource configuration is not modifiable in this context.
при вызове API.
Я полагаю, что исчерпал многие тривиальные решения, в том числе те, которые я видел здесь. Я предполагаю, что что-то связано с конфигурацией развертывания, которую я настроил в IntelliJ IDEA, которую я использую. Так что в основном мой код выглядит следующим образом:
@ApplicationPath("api")
public class MyApplication extends ResourceConfig {
public MyApplication() {
register(...);
}
}
@Path("data")
public class DataController {
...
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response list() {
return Response.ok().build();
}
}
Мой web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>SOPStorageService server</display-name>
</web-app>
При развертывании в IntelliJ IDEA я выбираю разорванный войной вид артефакта, в который добавляю службу хранения со всеми ее зависимостями.
Единственная проблема, которую я до сих пор полностью не исключил, - это возможная несовместимость между некоторыми банками. Мне еще интересно, сможет ли кто-нибудь лучше определить возможную проблему в данном конкретном случае.
Любая помощь высоко ценится.