Oracle Service BUS 12c :: “Failed to parse XML text”

Recentemente comecei a utilizar o Oracle Service BUS 12c, mais precisamente a versão 12.2.1.0, e um dos objetivos era o de criar um webservice REST a partir de um webservice SOAP através de uma configuração de OSB.

Virtualizar o serviço SOAP e criar o respectivo serviço REST utilizando o OSB 12c foi bem mais fácil do que eu esperava, a maior parte do trabalho foi “arrastar-e-soltar“.

Realizei os testes testes do serviço SOAP e da interface REST a partir do console OSB e obtive os resultados esperados.

Para ter certeza que não estava me apegando ao resultado aprestado pelo SB Console

Entretanto, quando realizei os mesmos testes na interface REST utilizando o Postman (e o SoapUI) obtinha como resposta a mensagem de falha:

{
  "errorMessage": "Failed to parse XML text",
  "errorCode": "OSB-382000"
}

Analisei o log do servidor para descobrir a causa do problema mas ele apenas apresentava o seguinte:

<com.bea.alsb.common.catalog.cataloglogger> <cataloglogger> <log>
<exception in="" inboundwsdlresthandler.handleresponse,="" com.bea.wli.sb.sources.transformexception:=""  failed="" to="" parse="" xml="" text="">
...
Caused by: java.io.CharConversionException: Malformed UTF-8 character: 0xc1 0x47

Como você pode ver, o log do servidor não ajudou a descobrir porque o problema aconteciae pesquisar no Google e no “My Oracle Support” também não ajudaram muito.

Depois de horas de pesquisas infrutiferas decidi fazer um teste utilizando um processo BPEL e, como suspeitava, tive certeza que o problema era causado pelo enconding do serviço SOAP.

Neste caso a solução foi alterar as informações do business service, do serviço SOAP que estava virtualizado, definindo o encoding para o request e response do componente na configuração do OSB.

Para ajustar isso clique com o botão direito sobre o componente e selecione a opção “Edit”, como mostrado na imagem abaixo:

arcgis1

Na tela de edição do arquivo “.bix”, no menu a esquerda, selecione o item “Transport Details” e informe o valor “utf-8” nos campos “Request Encoding” e “Response Encoding” como mostrado na figura abaixo:

arcgis2

Com esse ajuste na configuração do “business service” a interface REST  vai funcionar como esperado.

Qualquer dúvida deixa um comentário.

 

Atualizando o Client SVN do JDeveloper 11g R1

Atualmente estou trabalhando com ferramentas do Fusion Middleware da Oracle (SOA Suite, BPM Suite, WebCenter, etc) e o Oracle JDeveloper 11g R1 (mais precisamente a versão 11.1.1.5) é minha principal ferramenta de desenvolvimento. Essa ferramenta já possui um cliente de SVN embutido entretanto, a versão disponível atualmente ainda carece de funcionalidades comuns no TortoiseSVN e por essa razão muitos de nós prefere utilizar o TortoiseSVN ao invés do cliente interno do JDeveloper.

Uma das razões que me faz preferir o TortoiseSVN ao cliente do JDeveloper são suas atualizações frequentes.

Portanto, se você assim como eu atualizou seu TortoiseSVN para a versão 1.7.1 e passou a ter problemas com o JDeveloper para abrir seus projetos faça o seguinte:

  1. Realize o download da versão “Standalone” do SVNKit (http://svnkit.com/) e descompacte o arquivo (aparecerá o diretório “svnkit-1.3.6-v1“).
  2. Renomeie os arquivos como mostrado abaixo (os arquivos estão no diretório ” lib “):
    de para
    svnkit-javahl16-1.3.6-v1.jar svnjavahl.jar
    svnkit-1.3.6-v1.jar svnkit.jar
    trilead-ssh2-1.0.0-build214.jar trilead.jar
  3. Agora copie os arquivos renomeados para  [DIR_INSTALL_JDEVELOPER]\jdev\extensions\oracle.jdeveloper.subversion“. Substituia os arquivos originais.
  4. Copie os arquivos de licença (diretório ” licenses “)

Agora inicie novamente o JDeveloper que e ele volta a funcionar normalmente.

Antes da atualização quando você acessava o menuo ” Tools\Preferences\Versioning ” o JDeveloper mostrava “SVNKit/1.3.0 with JNA Disabled” após a atualização vai passar a mostrar “SVNKit/1.3.6 with JNA Disabled“.

A título de curiosidade, comigo, a falha que estava acontecendo no JDeveloper por causa do SVNKit desatualizado acontecia sempre que eu tentava acessar o menu “Application”.

Elaborei esse post utilizando como insumo um outro elaborado por “Aino Andriessen” para o JDeveloper 10g com o título “Upgrade JDeveloper 10g Subversion client“.

Qualquer dúvida, por favor, poste um comentário.