Архитектура: Клиент Windows -> Служба Wildfly JAX-RS -> Унаследованная система JBoss 5.1.0.GA.@Remote JNDI Связь: Wildfly to JBoss AS 5.1.0.GA
Я получаю java.lang.ClassCastException: javax.naming.Reference нельзя передать в com.interfaces.GroupBookingManagerRemote при общении здесь между службами Wildfly JAX-RS и старой системой JBoss 5.1.0.GA.
Как я связываюсь с Wildfly на JBoss AS 5.1.0.GA Я пытаюсь подключиться с помощью JNDI.
В моем Wildfly сервер Maven П включает:
<dependency>
<groupId>jboss</groupId>
<artifactId>jnp-client</artifactId>
<version>4.2.2.GA</version>
</dependency>
Это дает мне доступ к требуемой org.jnp * классы и интерфейсы..
Я просто использую следующий код для подключения к удаленному компьютеру и возврата назад GroupBookingManager. Однако проблема возникает, когда я пытаюсь применить класс к интерфейсу GroupBookingManagerRemote.
Properties env = new Properties();
env.setProperty(Context.PROVIDER_URL, "jnp://myremoteserver:1099");
env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
InitialContext initialContext = new InitialContext(env);
Object ref = initialContext.lookup("MyEARFile/GroupBookingManager/remote");
if (ref != null) {
bookingManager = (GroupBookingManagerRemote) ref; // java.lang.ClassCastException: javax.naming.Reference cannot be cast
}
У меня есть myclient.jar файл, который я добавил к моему Wildfly приложение, которое содержит удаленный интерфейс GroupBookingManagerRemote.
Кто-нибудь видит какие-либо проблемы с тем, что я сделал?
Спасибо,
Darren
Человек, который возвращается с машиной времени ... возможно, вы не бросаете объект, но вам нужно сделать PortableRemoteObject.narrow (ref, GroupBookingManagerRemote.class); (не знаю, правильно ли это, я выкопал его из ДЕЙСТВИТЕЛЬНО старых статей wiki компании) – Gimby
К сожалению, это дает мне следующее: java.lang.ClassCastException: javax.naming.Reference нельзя передать в org.omg.CORBA .Object – DarrenD
Тогда, вероятно, это неправильная зависимость. эта версия нечетна - похоже, вы используете зависимость от JBoss 4.2.2 для JBoss 5.1. JBoss всегда имеет общую зависимость jboss-as-client, которая предназначена для подключения к серверу JBoss от клиента, попробуйте использовать это. http://mvnrepository.com/artifact/org.jboss.jbossas/jboss-as-client/5.1.0.GA – Gimby