Arquivo Histórico de Thiago Vespa
Este site foi preservado para fins históricos e de referência. Alguns conteúdos podem estar desatualizados e recursos interativos foram desativados. Visite o site atual.
SOA – Thiago Galbiatti Vespa https://thiagovespa.com.br/blog Precisando é só avisar! Mon, 27 Oct 2025 01:35:58 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.8.5 https://thiagovespa.com.br/blog/wp-content/uploads/2023/05/cropped-eu3-32x32.png SOA – Thiago Galbiatti Vespa https://thiagovespa.com.br/blog 32 32 The Developers Conference 2014 https://thiagovespa.com.br/blog/2014/07/17/the-developers-conference-2014/ https://thiagovespa.com.br/blog/2014/07/17/the-developers-conference-2014/#comments Thu, 17 Jul 2014 22:26:08 +0000 http://www.thiagovespa.com.br/blog/?p=4086 Continue lendo The Developers Conference 2014→]]> Agora no começo de agosto terá um evento muito bacana no qual participo da coordenação: o The Developers Conference 2014. Esse evento eu já participo há alguns anos, muito bem organizado e com bastante conteúdo. Hoje mesmo fui com uma camiseta do evento de 2011 no trabalho.

TDC2011O TDC 2014 – São Paulo será realizado de 5 a 9 de agosto e terá 36 trilhas (TV Digital, Android, Startups, Java, Arquitetura, etc) no Anhembi Morumbi e,  como novidade, vários workshops na sede da Globalcode, inclusive de Raspberry PI e IoT com o Vinicius Senger.

A trilha de TV digital está bem bacana e está sendo coordenada por um grande amigo meu, o Carlos do Java Noroeste e por mim. Vamos ter palestras com aplicativos da Record, TQTVD, TV Aparecida, especialistas renomados na área de TV digital no Brasil e pela comunidade de desenvolvedores.

Para participar é só fazer a inscrição no site. Simultaneamente, vai ter um outro evento legal que é o TDC4Kids para crianças programarem com Scratch, Minecraft e IoT. Para ter uma ideia do porte do evento, essa é a lista de alguns patrocinadores: Amazon, Oracle, Stackoverflow, SAP, PayPal, Google, StackOverflow, JetBrains e Liferay.

A gente se fala lá!

TDC - Comunidade

]]>
https://thiagovespa.com.br/blog/2014/07/17/the-developers-conference-2014/feed/ 1
As 5 causas e o The Developers Conference 2013 – São Paulo https://thiagovespa.com.br/blog/2013/06/24/as-5-causas-e-o-the-developers-conference-2013-sao-paulo/ https://thiagovespa.com.br/blog/2013/06/24/as-5-causas-e-o-the-developers-conference-2013-sao-paulo/#comments Mon, 24 Jun 2013 12:01:22 +0000 http://www.thiagovespa.com.br/blog/?p=3956 Continue lendo As 5 causas e o The Developers Conference 2013 – São Paulo→]]> Você que pensa em melhorar o Brasil, seja protestando ou de sua própria maneira, venha para o The Developers Conference 2013 em São Paulo. Lá você poderá ter ideias de como fazer aplicações que possam ajudar a mudar o Brasil. Troque informações com alguns dos melhores profissionais do Brasil, veja como você pode melhorar a economia do país ou ter algumas ideias de como contribuir com a diminuição da corrupção. Segue algumas ideias:

The Developers Conference

Eu estarei por lá, principalmente no dia 11, onde teremos uma trilha de TV Digital. Compareça!

]]>
https://thiagovespa.com.br/blog/2013/06/24/as-5-causas-e-o-the-developers-conference-2013-sao-paulo/feed/ 11
Preferências no SOA Suite https://thiagovespa.com.br/blog/2013/02/06/preferencias-no-soa-suite/ https://thiagovespa.com.br/blog/2013/02/06/preferencias-no-soa-suite/#respond Wed, 06 Feb 2013 16:29:43 +0000 http://www.thiagovespa.com.br/blog/?p=3884 Continue lendo Preferências no SOA Suite→]]> Em algumas situações, no BPEL com SOA Suite, precisamos recuperar/alterar dados em tempo de execução sem ser necessário refazer e re-implantar a aplicação. Para resolver esse problema, o recurso de preferências vem bem a calhar. No JDeveloper, para o Oracle SOA Suite 11g, abra o composite.xml do seu projeto, selecione o componente BPEL e na janela de propriedades (Property Inspector – Ctrl+Shift+I) adicione uma propriedade nova com o nome bpel.preference.<Nome da propriedade>:
Property Inspector
Property Inspector

O código do composite.xml deve ter uma parte parecida com essa:

[sourcecode language=”xml”] <component name="PrefsBPELProcess" version="2.0">
<implementation.bpel src="PrefsBPELProcess.bpel"/>
<property name="bpel.config.transaction" type="xs:string" many="false">required</property>
<property name="bpel.preference.nome" type="xs:string" many="false"
override="may">Sem Nome</property>
</component>[/sourcecode]

]]>
https://thiagovespa.com.br/blog/2013/02/06/preferencias-no-soa-suite/feed/ 0
Spring no SOA Suite https://thiagovespa.com.br/blog/2013/01/23/spring-no-soa-suite/ https://thiagovespa.com.br/blog/2013/01/23/spring-no-soa-suite/#comments Wed, 23 Jan 2013 19:43:45 +0000 http://www.thiagovespa.com.br/blog/?p=3806 Continue lendo Spring no SOA Suite→]]> O componente de Spring Context permite que você execute código Java dentro de uma aplicação SOA Suite de maneira mais robusta que o Java Embedding do BPEL.

Crie uma aplicação SOA Suite e no composite.xml, arraste o componente Spring Context (Component Pallete) para a raia do meio.

Create Spring
Create Spring

Clique em OK. Você deverá ter um componente com um folhinha verde no meio do composite. O próximo passo é criar uma interface e uma classe para ser utilizada com o Spring Context. Clique em File, New, Java Interface e clique em OK. Dê um nome, no meu exemplo vou dar o nome de OlaSpring. Clique em OK. Insira o seguinte conteúdo:

]]>
https://thiagovespa.com.br/blog/2013/01/23/spring-no-soa-suite/feed/ 3
Erro ao utilizar o cliente Soap no WebLogic https://thiagovespa.com.br/blog/2013/01/03/erro-ao-utilizar-o-cliente-soap-no-weblogic/ https://thiagovespa.com.br/blog/2013/01/03/erro-ao-utilizar-o-cliente-soap-no-weblogic/#respond Thu, 03 Jan 2013 23:22:58 +0000 http://www.thiagovespa.com.br/blog/?p=3756 Continue lendo Erro ao utilizar o cliente Soap no WebLogic→]]> Para quem tentou utilizar o projeto de cliente Soap descrito nesse post no WebLogic, pode ter tido algum problema semelhante à esse:
java.lang.UnsupportedOperationException: This class does not support SAAJ 1.1
 at weblogic.webservice.core.soap.SOAPMessageImpl.getSOAPBody(SOAPMessageImpl.java:631)
 at org.gvlabs.utils.soap.SoapClient.invokeOperation(SoapClient.java:76)

Isso é porque é a implementação do SAAJ padrão do WebLogic é falha, conforme descrito nesse outro post. Como work-around segundo o artigo, seria só passar o seguinte parâmetro na inicialização do server do WebLogic:

]]>
https://thiagovespa.com.br/blog/2013/01/03/erro-ao-utilizar-o-cliente-soap-no-weblogic/feed/ 0
Quartz 2 no SOA Suite e Classloading https://thiagovespa.com.br/blog/2013/01/03/quartz-2-no-soa-suite-e-classloading/ https://thiagovespa.com.br/blog/2013/01/03/quartz-2-no-soa-suite-e-classloading/#comments Thu, 03 Jan 2013 19:04:45 +0000 http://www.thiagovespa.com.br/blog/?p=3758 Continue lendo Quartz 2 no SOA Suite e Classloading→]]> Se você quiser utilizar um projeto web utilizando o quartz-2.x no WebLogic com SOA Suite, terá um problema semelhante a esse:
java.lang.NoSuchMethodError: org.quartz.Scheduler.getJobGroupNames()Ljava/util/List;

Isso significa que o WebLogic está utilizando uma classe com versão diferente do quartz-2.x. Se você utilizar o utilitário descrito nesse post na pasta de instalação do WebLogic com SOA Suite, irá verificar que o WebLogic utiliza outra versão do quartz:

./soa/modules/quartz-all-1.6.5.jar:org/quartz/Scheduler.class

Mesmo que você coloque o jar do quartz 2.x na pasta WEB-INF/lib o ClassLoader do WebLogic irá considerar o quartz do SOA. Para dar preferência à lib que está na WEB-INF/lib adicione a seguinte instrução no arquivos WEB-INF/weblogic.xml do seu projeto:

[sourcecode language=”xml”]<?xml version = ‘1.0’ encoding = ‘UTF-8’?>
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
…
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>[/sourcecode]

Com isso a lib do quartz que está dentro da pasta WEB-INF lib será considerada pelo ClassLoader para essa aplicação ao invés da que está no servidor.

]]>
https://thiagovespa.com.br/blog/2013/01/03/quartz-2-no-soa-suite-e-classloading/feed/ 4
Chamando serviços SOAP sem Proxy, Stubs e afins https://thiagovespa.com.br/blog/2012/12/12/chamando-servicos-soap-sem-proxy-stubs-e-afins/ https://thiagovespa.com.br/blog/2012/12/12/chamando-servicos-soap-sem-proxy-stubs-e-afins/#comments Wed, 12 Dec 2012 18:34:30 +0000 http://www.thiagovespa.com.br/blog/?p=3678 Continue lendo Chamando serviços SOAP sem Proxy, Stubs e afins→]]> Uma das dificuldades em projetos com Web Services utilizando SOAP/XML é a necessidade de gerar as classes clientes para a invocação do serviço. Tá certo que isso é feito de maneira muito simples com as ferramentas necessárias, mas fiquei com uma certa inveja do PHP. Nesse artigo, podemos ver que é muito simples invocar serviços SOAP no PHP. Tá certo que não tem as validações de estrutura e verificações que o jeito tradicional Java tem, mas em alguns casos, como testes unitários de serviços é muito mais simples fazer dessa forma. Pensando nisso criei um utilitário para facilitar esse tipo de requisição.

É só colocar a lib no classpath e utilizá-la. Você pode fazer o download do fonte ou dessa lib no Google Code, o código fonte está disponível também no GitHub. Para utilizá-la é muito simples. Você pode inclusive fazer tudo em uma linha, dessa forma:

[sourcecode language=”java”]
String response = new SoapClient("http://endpointhost.com/endpoint").invokeOperation("operation", "<payload>something</payload");
[/sourcecode]

Ou se você quiser algo mais organizado, segue um exemplo de um serviço de conversão de peso:

[sourcecode language=”java”]
String endpoint = "http://www.webservicex.net/ConvertWeight.asmx";
String operation = "http://www.webserviceX.NET/ConvertWeight";
String input = "<web:ConvertWeight xmlns:web=\"http://www.webserviceX.NET/\">"
+ "<web:Weight>7</web:Weight>"
+ "<web:FromUnit>Grains</web:FromUnit>"
+ "<web:ToUnit>Grams</web:ToUnit>" + "</web:ConvertWeight>";

SoapClient soapClient = new SoapClient(endpoint);

String response = response = soapClient.invokeOperation(operation, input);
[/sourcecode]

O response terá o seguinte conteúdo:

[sourcecode language=”xml”]
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ConvertWeightResponse xmlns="http://www.webserviceX.NET/">
<ConvertWeightResult>0.4536</ConvertWeightResult>
</ConvertWeightResponse>
</soap:Body>
</soap:Envelope>
[/sourcecode]

Agora vou usar nos meus testes de serviços.

]]>
https://thiagovespa.com.br/blog/2012/12/12/chamando-servicos-soap-sem-proxy-stubs-e-afins/feed/ 3
Lendo arquivos de um diretório com File Adapter https://thiagovespa.com.br/blog/2012/08/01/lendo-arquivos-de-um-diretorio-com-file-adapter/ https://thiagovespa.com.br/blog/2012/08/01/lendo-arquivos-de-um-diretorio-com-file-adapter/#comments Wed, 01 Aug 2012 12:46:18 +0000 http://www.thiagovespa.com.br/blog/?p=2519 Continue lendo Lendo arquivos de um diretório com File Adapter→]]> Um dos recursos interessantes é a possibilidade de monitorar o sistema de arquivos pela chegada de novos arquivos e poder processá-los de acordo. A versão nova do File Adapter que vem junto com o Oracle Soa Suite possui esse recurso. Nesse exemplo, vamos criar um projeto que lê os arquivos de um diretório, processa e move para uma pasta.

O primeiro passo é criar um projeto SOA e arrastar o File Adapter para o composite.xml. Na tela de configuração do File Adapter, clique em Next. Dê um nome para o File Adapter e clique em Next. Na próxima tela, deixe marcado para definir o WSDL posteriormente e clique em Next. Escolha a opção Read file, deixa as opções padrões e clique em Next. Especifique os diretório de leitura e marque as opções: “Process files recursively”, “Archive processed files (especifique um diretório)” e “Delete files after successful retrieval”.

File Adapter Configuration Wizard
File Adapter Configuration Wizard

]]>
https://thiagovespa.com.br/blog/2012/08/01/lendo-arquivos-de-um-diretorio-com-file-adapter/feed/ 1
Alterar título do Bpel https://thiagovespa.com.br/blog/2012/08/01/alterar-titulo-do-bpel/ https://thiagovespa.com.br/blog/2012/08/01/alterar-titulo-do-bpel/#respond Wed, 01 Aug 2012 04:30:32 +0000 http://www.thiagovespa.com.br/blog/?p=2376 Continue lendo Alterar título do Bpel→]]> Para alterar o título de um BPEL no Oracle SOA Suite, crie um variável qualquer do tipo string, arraste uma atividade básica do tipo Assign para o começo do processo. Dê dois cliques para editar o Assign e adicione uma regra onde o conteúdo do “from” seja: ora:setCompositeInstanceTitle(‘Título do BPEL’) e do “to” a variável criada.
Edit Assign
Edit Assign

Agora ao executar o processo BPEL, você terá como buscar pelo título no Enterprise Manager:

Recent Instances
Recent Instances

Search
Search

]]>
https://thiagovespa.com.br/blog/2012/08/01/alterar-titulo-do-bpel/feed/ 0
Arquivos não XML no File Adapter https://thiagovespa.com.br/blog/2012/07/31/arquivos-nao-xml-no-file-adapter/ https://thiagovespa.com.br/blog/2012/07/31/arquivos-nao-xml-no-file-adapter/#respond Tue, 31 Jul 2012 21:59:13 +0000 http://www.thiagovespa.com.br/blog/?p=2496 Continue lendo Arquivos não XML no File Adapter→]]> O File Adapter citado no post anterior pode ser utilizado para gravar arquivos diferentes de XML, com arquivos CSV, textos, cobol copybook e afins. Para esse tipo de arquivo, na etapa 6 do File Adapter Configuration Wizard, ao invés de especificar a URL, você deve selecionar a engrenagem ao lado da lupa.
Native Format Builder: Welcome
Native Format Builder: Welcome

Clique em Next. No nosso exemplo, vamos utilizar a opção Fixed Length que é um formato bastante utilizado para troca de informações entre empresas bancárias, mas sinta-se livre para aventurar em outros formatos, como o Delimited, Complex Type, DTD to XSD ou Cobol Copybook. Clique em Next. Na próxima tela, escolha um arquivo que tenha um exemplo de saída desejada. Para facilitar você pode utilizar o meu arquivo. Selecione o Character set como UTF-8 que é o Character set do meu arquivo e clique em Next.

]]>
https://thiagovespa.com.br/blog/2012/07/31/arquivos-nao-xml-no-file-adapter/feed/ 0