Acesso EJB Remoto

2 respostas
wandersonxs

Boa noite pessoal!!!

Galera é o seguinte, preciso depurar meu EJB e acessar outro EJB remoto que está em outra máquina.
Tenho a IP e a porta acessível deste servidor remoto mas sempre dá timeout.

Alguém sabe o que é necessário para acessar um EJB remoto? Estou usando o Websphere 5.1. Mas qualquer ajuda será bem vinda…

Local chama este EJB de boa…

Abraços
Wanderson 8)

2 Respostas

Jair_Rillo_Junior

Tem certeza que o EJB Remoto está acessível? Eu tive um problema um tempo atrás parecido, mas eu fui descobrir que o problema era que o SO (AIX) estava com o firewall bloqueando as chamadas remotas. (No caso eu estava usando o WAS 6.1)

D

Tem funcionado pra mim. Você precisa setar algumas propriedades.... Descubra a porta e IP para conexão
e o org.jboss.naming é o cliente do servidor, no meu caso é a pasta client do jboss, para o WAS deve ter um jar que é o cliente. Coloca ele no Build path...

package test;

import java.util.List;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.sarbarian.finance.IFinanceRemote;
import com.sarbarian.finance.entity.Account;
import com.sarbarian.finance.entity.Asset;

public class RemoteTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Properties props = new Properties();
			props.setProperty("java.naming.provider.url","jnp://127.0.0.1:1099");
			props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
			props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");			
			
			Context context = new InitialContext(props);
			
			IFinanceRemote remote = (IFinanceRemote) context.lookup("jboss5-dev/FinanceSession/remote");
			
			Asset asset = new Asset();
			asset.setCode("code remote");
			asset.setDescription("description remote");
			asset.setName("name remote");
			remote.addAsset(asset);
			System.out.println("remote add asset");
			List<?> items = remote.getAssets();
			for (Object item : items) {
				Asset item1 = (Asset) item;
				System.out.println("item = " + item1.getId());
			}
			
			Account account = remote.getAccount(1);
			System.out.println(account.getPropertie("agencia"));
			
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
Criado 17 de outubro de 2008
Ultima resposta 21 de out. de 2008
Respostas 2
Participantes 3