Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2015, 14:45   #1
moon-guest
Пользователь
 
Аватар для moon-guest
 
Регистрация: 14.11.2010
Сообщений: 27
По умолчанию RMI и Servlet

Доброго дня форумчане!!!

Решил подружить RMI и Servlet в своем проекте, но не получается!

В RMI идет подключение к dll через native.

Если использовать как десктопное приложение то проблем нет, но Servlet упирается изо всех сил:

Код:
мар 04, 2015 4:27:47 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [rmi.JCRmi] in context with path [/rDisp] threw exception
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: 
	java.net.SocketException: Connection reset
	at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
	at sun.rmi.server.UnicastRef.newCall(Unknown Source)
	at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
	at rmi.JCRmi.processRequest(JCRmi.java:33)
	at rmi.JCRmi.doGet(JCRmi.java:51)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(Unknown Source)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.io.BufferedInputStream.fill(Unknown Source)
	at java.io.BufferedInputStream.read(Unknown Source)
	at java.io.DataInputStream.readByte(Unknown Source)
	... 28 more

Клиент RMI в Servlet

Код:
    	response.setContentType("text/html;charset=UTF-8");
    	response.setHeader("Cache-Control", "no-cache");
	response.setContentType("text/html");
	response.setCharacterEncoding("UTF-8");	
    	PrintWriter out = response.getWriter();	
    	out.println("<script>");

    	Registry registry = LocateRegistry.getRegistry("localhost", 1098);
        try {
			hello stub = (hello) registry.lookup("hello");
			int Count = stub.getCount();
			for(int i=0; i < Count; i++){
				out.println("window.document.getElementById('"+
						stub.getName(i)
						+"').innerHTML="+
						stub.getData(i)
					+";");
        	}
		} catch (NotBoundException e) {
			e.printStackTrace();
		}
        
         out.println("</script>");

Сервер RMI

Код:
public class Server implements hello {
         private static JNativeMetod NativeMetod = new JNativeMetod();
         public static void main(String[] args) throws AccessException, RemoteException, AlreadyBoundException, InterruptedException {
		Server obj = new Server();
		hello stub = (hello) UnicastRemoteObject.exportObject(obj, 0);
		Registry registry = LocateRegistry.createRegistry(1098);
		registry.bind("hello", stub);
                NativeMetod.Run();
	}
        @Override
	public int getCount() throws RemoteException {
		return NativeMetod.getCount();
	}

	@Override
	public String getName(int id) throws RemoteException {
		return NativeMetod.getName(id);
	}

	@Override
	public String getData(int id) throws RemoteException {
		return NativeMetod.getData(id);
	}
}
moon-guest вне форума Ответить с цитированием
Старый 05.03.2015, 13:12   #2
moon-guest
Пользователь
 
Аватар для moon-guest
 
Регистрация: 14.11.2010
Сообщений: 27
По умолчанию

А вообще можно ли подружить RMI и Servlet???
moon-guest вне форума Ответить с цитированием
Старый 18.03.2015, 14:44   #3
moon-guest
Пользователь
 
Аватар для moon-guest
 
Регистрация: 14.11.2010
Сообщений: 27
По умолчанию

Всё решилось.
Оказалось что проблема была в расположении интерфейсного файла.
Он должен находиться в одинаковом пакете что на сервере то и на клиенте.
moon-guest вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RMI в java 8 Артём Волжанкин Помощь студентам 0 11.12.2014 19:06
Ошибка Servlet veter48 Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 0 14.06.2013 11:57
RMI nyx Общие вопросы по Java, Java SE, Kotlin 1 09.03.2010 00:24
Java RMI connection timed out MaTBeu Общие вопросы по Java, Java SE, Kotlin 9 11.02.2010 06:12
ProgressBar и Servlet SuperOrange Общие вопросы по Java, Java SE, Kotlin 0 08.07.2009 17:17