2015-11-17 3 views
0

Я поддерживаю старые веб-службы мыла, работающие на JAX-RPC (реализация Weblogic). Но я испытываю к NPE без полной трассировки стека:Weblogic/JRockit Обработка исключений на веб-сервисах JAX-RPC (Soap)

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>Failed to invoke end component com.old.service.MyService (POJO), operation=listUsers 
-&gt; Failed to invoke method 
</faultstring><detail><java:string xmlns:java="java.io">java.lang.NullPointerException 
</java:string></detail></env:Fault></env:Body></env:Envelope> 

Есть ли способ, чтобы найти полный трассировки стека? Есть ли способ программно обрабатывать исключение веб-сервисов, например, @HandlerChain аннотация в Jax-WS (для целей ведения журнала)?

ответ

0

Решение:

я, наконец, нашел решение здесь: https://docs.oracle.com/middleware/1212/wls/WSRPC/jax-rpc-handlers.htm#WSRPC414 с помощью @HandlerChain(file = "jaxrpc-soap-handler-chain.xml", name="JaxRpcSOAPHandlerChain") с конкретным файлом обработчика конфигурации (с BEA пространств имен вместо JEE пространств имен), который ссылается на класс, который реализует javax.xml.rpc.handler.Handler

jaxrpc-soap-handler-chain.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<jwshc:handler-config xmlns:jwshc="http://www.bea.com/xml/ns/jws" 
    xmlns:soap1="http://HandlerInfo.org/Server1" xmlns:soap2="http://HandlerInfo.org/Server2" 
    xmlns="http://java.sun.com/xml/ns/j2ee"> 
    <jwshc:handler-chain> 
     <jwshc:handler-chain-name>JaxRpcSOAPHandlerChain</jwshc:handler-chain-name> 
     <jwshc:handler> 
      <handler-name>JaxRpcSOAPLoggerHandler</handler-name> 
      <handler-class>com.old.service.ws.handler.JaxRpcSOAPLoggerHandler</handler-class> 
     </jwshc:handler> 
    </jwshc:handler-chain> 
</jwshc:handler-config> 
Смежные вопросы