JBoss EAP 6.4 Сквозной пример HelloWorld RMI не работаетJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JBoss EAP 6.4 Сквозной пример HelloWorld RMI не работает

Сообщение Anonymous »

Я уже пробовал создать простое приложение HelloWorld, которое также имеет клиентский код Java, чтобы попытаться вызвать сессионный компонент, развернутый в JBoss EAP 6.4, как показано в деталях ниже, но мне не удалось заставить его работать. Я получил сообщение об ошибке:

Код: Выделить всё

Sep 18, 2024 11:58:55 AM org.xnio.Xnio 
INFO: XNIO version 3.3.8.Final
Sep 18, 2024 11:58:55 AM org.xnio.nio.NioXnio 
INFO: XNIO NIO Implementation Version 3.3.8.Final
Sep 18, 2024 11:58:55 AM org.jboss.remoting3.EndpointImpl 
INFO: JBoss Remoting version 4.0.5.Final
Sep 18, 2024 11:58:55 AM org.jboss.ejb.client.remoting.VersionReceiver handleMessage
INFO: EJBCLIENT000017: Received server version 2 and marshalling strategies [river]
Sep 18, 2024 11:58:55 AM org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver associate
INFO: EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@343f4d3d, receiver=Remoting connection EJB receiver [connection=Remoting connection ,channel=jboss.ejb,nodename=developers-macbook-pro]} on channel Channel ID c3ce81a3 (outbound) of Remoting connection 72d818d1 to localhost/127.0.0.1:4447
javax.naming.NameNotFoundException: global/jboss-helloworld/HelloWorldBean!org.example.HelloWorldRemote -- service jboss.naming.context.java.jboss.exported.global.jboss-helloworld."HelloWorldBean!org.example.HelloWorldRemote"
at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:104)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:197)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:174)
at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127)
at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)

Process finished with exit code 0
Возможно, это повторяющийся вопрос, но судя по тому, что я искал ранее, я видел несколько вопросов по этому поводу, но не нашел конкретного ответа, относящегося к JBoss EAP 6.4. В конечном счете, я намерен перенести приложение, использующее EJB2.x EJB2.x и стиль конфигурации на основе ejb-jar.xml для bean-компонентов, с JBoss 5 на JBoss EAP 6.4.
Судя по всему, я намереваюсь получить сквозной рабочий пример HelloWorld, в котором я могу вызывать сессионный компонент из клиента кода Java. Я попробовал пару вещей, но безрезультатно.
Ниже то, что я пробовал (на основе Maven):
pom.xml

Код: Выделить всё


4.0.0

org.example
jboss-6-4-helloworld-2
1.0-SNAPSHOT
jar


1.8
1.8
UTF-8





org.jboss.spec.javax.ejb
jboss-ejb-api_3.1_spec
1.0.2.Final
provided




org.jboss
jboss-ejb-client
2.1.0.Final




org.jboss.remoting3
jboss-remoting
3.3.12.Final




org.jboss
jboss-remote-naming
2.0.4.Final




org.jboss.xnio
xnio-api
3.3.8.Final


org.jboss.xnio
xnio-nio
3.3.8.Final




org.jboss.logging
jboss-logging
3.1.4.GA




org.slf4j
slf4j-api
1.7.25



org.slf4j
slf4j-simple
1.7.25






org.apache.maven.plugins
maven-compiler-plugin
3.8.1

1.8
1.8



jboss-eap-client


HelloWorldClient.java

Код: Выделить всё

package org.example.client;

import org.example.HelloWorldRemote;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Hashtable;

public class HelloWorldClient {

public static void main(String[] args) {
try {
// Set up the environment for creating the InitialContext
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
env.put(Context.PROVIDER_URL, "remote://localhost:4447");  // Update with your server's IP and port
env.put(Context.SECURITY_PRINCIPAL, "xxx"); // Optional if authentication is required
env.put(Context.SECURITY_CREDENTIALS, "xxxx"); // Optional if authentication is required
env.put("jboss.naming.client.ejb.context", "true");

// Create the InitialContext
Context context = new InitialContext(env);

// Lookup the EJB (using JNDI name)
String jndiName = "java:global/jboss-helloworld/HelloWorldBean!org.example.HelloWorldRemote";
HelloWorldRemote hello = (HelloWorldRemote) context.lookup(jndiName);

// Call the remote method
String response = hello.sayHello("JBoss EAP");
System.out.println("Response from EJB: " + response);

} catch (NamingException e) {
e.printStackTrace();
}
}
}
HelloWorldRemote.java

Код: Выделить всё

package org.example;

import javax.ejb.Remote;

@Remote
public interface HelloWorldRemote {
String sayHello(String name);
}
HelloWorldBean.java

Код: Выделить всё

package org.example;

import javax.ejb.Stateless;

@Stateless
public class HelloWorldBean implements HelloWorldRemote {

@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
На моем локальном компьютере установлен JBoss EAP 6.4, и я развертываю свое приложение в автономном режиме и использую конфигурацию Standalone.xml только для этого POC HelloWorld.
standalone.xml (использовался в том виде, в каком он есть, без изменений)
Вывод при запуске моего сервера:

Код: Выделить всё

12:11:50,437 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean named HelloWorldBean in deployment unit deployment "jboss-eap-client.jar"  are as follows:

java:global/jboss-eap-client/HelloWorldBean!org.example.HelloWorldRemote
java:app/jboss-eap-client/HelloWorldBean!org.example.HelloWorldRemote
java:module/HelloWorldBean!org.example.HelloWorldRemote
java:jboss/exported/jboss-eap-client/HelloWorldBean!org.example.HelloWorldRemote
java:global/jboss-eap-client/HelloWorldBean
java:app/jboss-eap-client/HelloWorldBean
java:module/HelloWorldBean

12:11:50,533 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS015859: Deployed "jboss-eap-client.jar" (runtime-name : "jboss-eap-client.jar")
12:11:50,540 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
12:11:50,540 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
12:11:50,541 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.4.0.GA (AS 7.5.0.Final-redhat-21) started in 1105ms - Started 201 of 239 services (59 services are lazy, passive or on-demand)
зависимость mvn:tree

Код: Выделить всё

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ jboss-6-4-helloworld-2 ---
[INFO] org.example:jboss-6-4-helloworld-2:jar:1.0-SNAPSHOT
[INFO] +- org.jboss.spec.javax.ejb:jboss-ejb-api_3.1_spec:jar:1.0.2.Final:provided
[INFO] +- org.jboss:jboss-ejb-client:jar:2.1.0.Final:compile
[INFO] |  +- org.jboss.marshalling:jboss-marshalling:jar:1.4.3.Final:compile
[INFO] |  \- org.jboss.remoting:jboss-remoting:jar:4.0.5.Final:compile
[INFO] +- org.jboss.remoting3:jboss-remoting:jar:3.3.12.Final:compile
[INFO] +- org.jboss:jboss-remote-naming:jar:2.0.4.Final:compile
[INFO] |  +- org.jboss.marshalling:jboss-marshalling-river:jar:1.4.3.Final:compile
[INFO] |  \- org.jboss.sasl:jboss-sasl:jar:1.0.4.Final:compile
[INFO] +- org.jboss.xnio:xnio-api:jar:3.3.8.Final:compile
[INFO] +- org.jboss.xnio:xnio-nio:jar:3.3.8.Final:compile
[INFO] +- org.jboss.logging:jboss-logging:jar:3.1.4.GA:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] \- org.slf4j:slf4j-simple:jar:1.7.25:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Кроме того, мне удалось добавить новых пользователей: одного пользователя управления и еще одного пользователя приложения.
Одинаковое имя пользователя и пароль как для управления, так и для пользователей приложения.
Основная причина, по которой я использую JBoss EAP 6.4, заключается в том, что, согласно проведенному мной исследованию, он поддерживает обратную совместимость для объектных компонентов, а также поддержку JPA 2.0 и аннотаций CDI. Пожалуйста, сообщите также, есть ли другие лучшие способы решения этой проблемы.
Будем благодарны за ссылку на рабочий пример.

Подробнее здесь: https://stackoverflow.com/questions/789 ... ot-working
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • JBoss EAP 6.4 Рабочий сквозной пример HelloWorld RMI не работает
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • JBoss EAP 6.4 Сквозной пример HelloWorld RMI не работает
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • JBoss EAP 6.4 Сквозной пример HelloWorld RMI не работает
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • JConsole JBoss EAP 7.1.1.0.10 имеет различия между двумя установками
    Гость » » в форуме Linux
    0 Ответы
    28 Просмотры
    Последнее сообщение Гость
  • JBoss EAP 6 EJB – как синхронно ждать ответа от JMS
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»