Pergunta

Eu estou tentando implantar um serviço web Axis2 em um servidor de aplicativo OC4J 10.1.3.

Eu estava usando o eixo 1.4 antes e tinha acabado de criar minha própria biblioteca compartilhada com todos os arquivos. Houve um problema com 1.4 que foi corrigido com 1,5, então agora eu estou usando isso, mas não inclui todas as bibliotecas. Desta vez eu implantou o axis2.war para o servidor OC4J e eu estou usando a página de administração do Axis2 para tentar implantar o meu serviço web.

Se eu implantar um serviço web através eixo2 então eu vou ter uma java.lang.NoSuchMethodError: javax.jws.WebMethod.exclude()Z mas eu não posso encontrar a biblioteca conflitantes. Axis2 tem as novas bibliotecas JAX-WS nele, mas eu acho que é um problema no servidor OC4J aplicativo. I excluídos xml.jar (uma vez que tem idade JAXB 1.0 libs) e isso resolve o problema na minha máquina local, mas não na caixa de linux.

Eu tentei editar o plano de implantação para procurar pastas locais em primeiro lugar e isso me permite implantar o serviço, mas quando tento acessá-lo, ou o WSDL, então eu recebo um erro sobre uma exceção de lançamento de classe e JXDocumentBuilderFactory (I don 't têm o erro exato neste momento).

Eu comparei as bibliotecas compartilhadas na caixa de linux com aqueles em minha máquina local e eu usei as mesmas em cada (eu não verificar as versões de cada frasco, embora). Se eixo2 é implantado em OC4J e eu implantar o meu serviço para eixo2 então eu não iria herdar as bibliotecas do Axis2 (JAX-WS, etc)?

Foi útil?

Solução

Tente remover a biblioteca herdada em conflito, adicionando isso ao seu orion-application.xml:

<orion-application>
  <imported-shared-libraries>
    <remove-inherited name="PUT_HERE_THE_NAME_OF_THE_LIBRARY"/>
  </imported-shared-libraries>
</orion-application>

Mais aqui: Remoção e / ou substituir um Oracle Shared Library importadas por padrão

Editar:
Eu procurei as bibliotecas compartilhadas e descobriu que não está lá, TJ-api.jar é carregado no momento da inicialização e não pode ser facilmente removido:

Substitua as OC4J JAX-WS Bibliotecas
OC4J tem suporte preliminar para JAX-WS, infelizmente, isso significa que durante OC4J arrancar ele carrega desatualizado JAX-WS APIs e implementação de Oracle. Isso ocorre bibliotecas antes mesmo compartilhadas entra em ação, numa fase muito precoce de inicialização OC4J.
bibliotecas OC4J de tempo de inicialização são configurados no arquivo boot.xml em $ ORACLE_HOME / J2EE / home / jar inicialização oc4j.jar. Para se livrar deste:

1-Copie o arquivo jar para $ {oracle.home} / webservices / lib / jaxws
2 Descompacte o arquivo OC4J.jar
3 Localize META-INF / boot.xml
4 Substitua caminho nesta linha com o seu jar:

<code-source 
   path="${oracle.home}/webservices/lib/jws-api.jar" 
   if="java.specification.version == /1\.[5-6]/"
/>  

5-Repackage oc4j.jar (não se esqueça sobre MANIFEST.MF - uso jar -m META-INF / MANIFEST.MF)

Artigo original: OC4J configuração para Web Services

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top