sexta-feira, 28 de maio de 2010

WSDL Generator

Certa vez eu estava participando de uma demonstração para o time de BPM de como era fácil integrar com o nosso ECM via WebServices nativos da ferramenta. Fizemos checkin, checkout, pesquisamos, baixamos o binário, aprovamos documentos, até que o consultor responsável me perguntou:
"Tudo bem, agora só temos que excluir o documento, me passa o wsdl de exclusão por favor!"
(alguns segundos de silencio)

Ai eu comecei a frase com o "Bem... Na verdade é que ainda temos que criar-lo"

Para minha felicidade que não escrevo um código Java a 3 anos, era do UCM que estavamos falando!

Saquei da manga o famoso WSDL Generator, componente que já vem instalado por padrão instalado há algum tempo.
Passo 1 - Achar o item SOAP WSDL

Passo 2 - Criar um novo item


Passo 3- Dar um nome e descrição (esse não tem imagem por motivos óbvios)

Passo 4 - Consultar a documentação do serviço do UCM para saber os parâmetros ou utilizar o grande IsSoap=1 (esse não tem imagem por preguiça do autor)

Passo 5 - Adicionar um novo serviço



Passo 5 - Clicando no edit do recém adicionado serviço, você será redirecionado para a a tela de inclusão de parâmetros

Passo 6 - Escolher a opção de UPDATE_REQUEST_PARAMETERS

Passo 7 - Adicionar os parâmetros, nesse caso só o dID


Passo 8 - Adicionar o UPDATE_Response_Parameters, como era um demo foi só o status mesmo


Passo 9 - Agora é só gerar o WSDL no menu principal, aquele da imagem 1.

Passo 10- Pronto!
http://servidorUCM/ucm/groups/secure/wsdl/custom/Delete_Rev.wsdl

Agora basta usar uma ferramenta de webservice como Soapui e etc para testar.

Chamada:
Retorno:



Até mais.


2 comentários:

  1. Olá Julinano!

    Estou com um problema na minha instalação do UCM 11G, não sei se me poderás ajudar.

    É o seguinte, quando acedo ao link do especificação do web service (por exemplo http://localhost:16200/cs/groups/secure/wsdl/custom/Search.wsdl) dá me o erro Error 403--Forbidden. No terminal do UCM aparece a seguinte mensagem de erro:


    <general exception
    intradoc.common.ServiceException: !csUserInsufficientAccess,weblogic
    at intradoc.idcwls.IdcServletRequestUtils.checkSecuredUri(IdcServletRequestUtils.java:2113)
    at intradoc.idcwls.IdcServletRequestUtils.processFilterEvent(IdcServletRequestUtils.java:1641)
    at intradoc.idcwls.IdcIntegrateWrapper.processFilterEvent(IdcIntegrateWrapper.java:221)
    at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at idcservlet.common.IdcMethodHolder.invokeMethod(IdcMethodHolder.java:87)
    at idcservlet.common.ClassHelperUtils.executeMethodEx(ClassHelperUtils.java:305)
    at idcservlet.common.ClassHelperUtils.executeMethodWithArgs(ClassHelperUtils.java:278)
    at idcservlet.ServletUtils.executeContentServerIntegrateMethodOnConfig(ServletUtils.java:1592)
    at idcservlet.IdcFilter.doFilter(IdcFilter.java:330)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:414)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)


    Tens alguma ideia do que será?

    Deixo desde já o meu obrigado!

    ResponderExcluir
  2. Oi Carlos,
    no 11g você tem que configurar a segurança dos webservices antes de tudo.


    "The Oracle UCM Web services are installed and ready to use by default with the Oracle UCM EAR. However, unless you configure WS-Security on any of the Oracle UCM Web services, all connections to the Oracle UCM content server will use the “anonymous” user. Additional configuration is required to enable authentication."


    http://download.oracle.com/docs/cd/E14571_01/doc.1111/e10807/web_services004.htm

    ResponderExcluir