2015-12-09 2 views
1

Это мой код клиентаJBREM000200: Удаленное подключение не удалось: java.io.IOException: существующее соединение было принудительно закрыто удаленным хостом

package com.tutorialspoint.test; 
import java.io.BufferedReader; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.Properties; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 
import com.tutorialspoint.stateless.testRemote; 

public class test 
{ 
    BufferedReader brConsoleReader = null; 
    Properties props; 
    static InitialContext ctx; 
    { 
     props = new Properties(); 
     try { 
      props.load(new FileInputStream("jndi.properties")); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
     try { 
      ctx = new InitialContext(props);    
     } catch (NamingException ex) { 
      ex.printStackTrace(); 
     } 
     brConsoleReader = 
     new BufferedReader(new InputStreamReader(System.in)); 
    } 

public static void main(String[] args) 
{ 
    test _test = new test(); 
    try { 
     testRemote libraryBean =(testRemote)ctx.lookup("java:global/TestEjb/testBean!  
      com.tutorialspoint.stateless.testRemote"); 
    } catch (NamingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }  
} 
} 

Это развертывается на сервере

package com.tutorialspoint.stateless; 
import javax.ejb.Stateless; 
@Stateless 
public class testBean implements testRemote 
{ 
    public void hello() 
    { 
    System.out.println("hello"); 
    } 
} 

package com.tutorialspoint.stateless; 
import javax.ejb.Remote; 

@Remote 
public interface testRemote 
{ 
    void hello(); 
} 

I я получаю исключение на стороне сервера:

19:09:12,676 ERROR [org.jboss.remoting.remote.connection] (Remoting "cognam-
pc-26" read-1) JBREM000200: Remote connection failed: java.io.IOException: An existing connection was forcibly closed by the
remote host

я получаю исключение на стороне клиента: -

javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:4447 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to retrieve stub from server localhost:4447 [Root exception is java.io.StreamCorruptedException:
invalid stream header: 0000000F]]

org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1414) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:594) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587) at javax.naming.InitialContext.lookup(InitialContext.java:392) at com.tutorialspoint.test.test.main(test.java:37)

+0

это получение вызывается только один раз –

+0

Тогда я думаю, ваш вырезать и вставить было неправильно или я прочитал это неправильно, я буду удалять свои комментарии. – dstudeba

+0

Возможно, ваш сервер фактически не разрешает подключения к 4447. Проверьте, можете ли вы подключиться к этому порту telnet или использовать netstat -an для запроса этого. – Phuthib

ответ

0

Возможно, ваш сервер фактически не разрешает подключения к 4447. Проверьте, можете ли вы подключиться к этому порту telnet или использовать netstat -an для запроса об этом.

Также убедитесь, что брандмауэр не блокирует доступ к порту.

+0

спасибо за ответ, я сделал это, изменив jndi.proerties, прежде чем я \t использует контекст JNP после изменения jndi.properties:- \t \t \t \t реквизита = новые свойства(); \t props.put (Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); props.put (Context.PROVIDER_URL, "remote: // localhost: 4447"); props.put ("jboss.naming.client.ejb.context", true); props.put ("jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false"); –

+0

Не следует, это означает, что проблема решена? – Phuthib

+0

может кто-нибудь сказать мне, как я могу настроить безопасность ejb с учетными данными во время вызова ejb –

0

TRY выключайте любые инструменты захвата HTTP трафика при работе (например Fiddler)

Смежные вопросы

 Смежные вопросы