[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: Implantacao por SAR
- Subject: Re: Implantacao por SAR
- From: Francisco Reverbel <reverbel at ime.usp.br>
- Date: Fri, 18 Oct 2002 10:56:24 -0300 (EST)
On Wed, 16 Oct 2002, Andrei Goldchleger wrote:
> Hoje na aula, lembro que comentamos sobre a possibilidade de implantar o
> invoker utilizando um sar. Pelo que eu entendi, se fizermos isso, temos
> que modificar o jboss.xml do EP1. Só que eu nao lembro exatamente
> como. Quais tags eu precisarei adicionar?
A resposta é meio longa... Isso depende da versão do JBoss e da configuração
do servidor (arquivo conf/standardjboss.xml) que você estiver usando.
Alguns elementos do arquivo standardjboss.xml mudaram (para melhor) a
partir da versão 3.2, que hoje está em beta. Vou responder para o caso da
versão 3.2, pois essa a versão que eu usei na minha solução do EP2. Ela
está disponível em
http://sourceforge.net/project/showfiles.php?group_id=22866
Recomendo fortemente rodar o EP2 nessa versão do JBoss.
Se você não tiver uma configuração especial (não mexer no
standardjboss.xml), terá que colocar no jboss.xml do EP1 um elemento
invoker-proxy-bindings com as definições de três associações invoker-proxy
(para entity beans, stateful session beans e stateless session beans) que
usam o seu javaiiop invoker. Além disso terá que especificar, para cada
bean no elemento enterprise-beans, o invoker-proxy-binding que esse bean
deve usar.
Abaixo incluo um exemplo de jboss.xml com os três invoker-proxy-bindings
e com um session bean que usa o javaiiop invoker.
<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<invoker-proxy-bindings>
<invoker-proxy-binding>
<name>entity-javaiiop-invoker</name>
<invoker-mbean>jboss:service=invoker,type=javaiiop</invoker-mbean>
<proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
<proxy-factory-config>
<client-interceptors>
<home>
<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</home>
<bean>
<interceptor>org.jboss.proxy.ejb.EntityInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</bean>
<list-entity>
<interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</list-entity>
</client-interceptors>
</proxy-factory-config>
</invoker-proxy-binding>
<invoker-proxy-binding>
<name>stateless-javaiiop-invoker</name>
<invoker-mbean>jboss:service=invoker,type=javaiiop</invoker-mbean>
<proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
<proxy-factory-config>
<client-interceptors>
<home>
<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</home>
<bean>
<interceptor>org.jboss.proxy.ejb.StatelessSessionInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</bean>
</client-interceptors>
</proxy-factory-config>
</invoker-proxy-binding>
<invoker-proxy-binding>
<name>stateful-javaiiop-invoker</name>
<invoker-mbean>jboss:service=invoker,type=javaiiop</invoker-mbean>
<proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-factory>
<proxy-factory-config>
<client-interceptors>
<home>
<interceptor>org.jboss.proxy.ejb.HomeInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</home>
<bean>
<interceptor>org.jboss.proxy.ejb.StatefulSessionInterceptor</interceptor>
<interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
<interceptor>org.jboss.proxy.TransactionInterceptor</interceptor>
<interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
</bean>
</client-interceptors>
</proxy-factory-config>
</invoker-proxy-binding>
</invoker-proxy-bindings>
<enterprise-beans>
<session>
<ejb-name>HelloWorld</ejb-name>
<jndi-name>helloworld/Hello</jndi-name>
<configuration-name>Standard Stateless SessionBean</configuration-name>
<invoker-bindings>
<invoker>
<invoker-proxy-binding-name>stateless-javaiiop-invoker</invoker-proxy-binding-name>
</invoker>
</invoker-bindings>
</session>
</enterprise-beans>
</jboss>
Em vez de colocar esse montão de coisas no jboss.xml do EP1, você pode
criar uma configuração especial de JBoss. Coloque os novos elementos
invoker-proxy-binding no arquivo standardjboss.xml, dentro do elemento
invoker-proxy-bindings que já existe lá. Aí no jboss.xml do EP1 você pode
só especificar os invokers usados pelos seus beans, exatamente como no
caso do session bean acima.
É possível ir ainda mais longe e fazer com que o seu invoker seja usado
como default, caso você não especifique nenhum invoker no jboss.xml do
EP1. Só que agora eu não lembro como fazer isso... E, de qualquer modo,
esta mensagem já está longa demais.
Reverbel