Tomcat7.0.100 не может предоставить java бэкэнд API-сервисов - PullRequest
1 голос
/ 27 февраля 2020

Чтобы решить проблему AJP, мы обновили tomcat до v7.0.100 и сконфигурировали файл conf / server. xml в элементе Host, как показано ниже:

<Context docBase="D:\app" path="/" reloadable="true" />

Передние ресурсы, такие как js , html

are ok

Но серверная служба API не запускается, и любые запросы возвращают ошибку 404. Catalina.out показывает ниже ошибку:

java.lang.IllegalArgumentException: 创建类型为 [xxx.manager.inter.websocket.service.WebSocketDemo] 的 POJO 实例失败
        at org.apache.tomcat.websocket.pojo.PojoEndpointServer.onOpen(PojoEndpointServer.java:60)
        at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:135)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:680)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:317)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.InstantiationException
        at org.apache.tomcat.websocket.server.DefaultServerEndpointConfigurator.getEndpointInstance(DefaultServerEndpointConfigurator.java:40)
        at org.apache.tomcat.websocket.pojo.PojoEndpointServer.onOpen(PojoEndpointServer.java:57)
        ... 7 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.apache.tomcat.websocket.server.DefaultServerEndpointConfigurator.getEndpointInstance(DefaultServerEndpointConfigurator.java:36)
        ... 8 more
Caused by: java.lang.NullPointerException
        at xxx.common.context.ApplicationContextManagement.getBean(ApplicationContextManagement.java:26)
        at xxx.manager.inter.websocket.service.WebSocketDemo.<init>(WebSocketDemo.java:36)
        ... 13 more

Строка кода 36 в WebSocketDemo. java:

 private SpeedService speedService =  (SpeedService)ApplicationContextManagement.getBean("speedService");

Мы отладили исходный код Tomcat и обнаружили ошибку в строке 111 в / org / apache / catalina / startup / WebappServiceLoader. java:

Enumeration<URL> resources = ((URLClassLoader) loader).findResources("/" + configFile);

1 Ответ

0 голосов
/ 08 марта 2020

вы добавили secretRequired = "false" к соединителю на сервере. xml?, Это что-то новое для tomcat

или вы также можете сделать это правдой, но нужно указать секретную фазу.

...