当前位置: 首页 > 知识库问答 >
问题:

如何创建EJB 3.2无状态Bean项目并在Wildfly 8上运行它?

汪成仁
2023-03-14

我正在尝试创建EJB 3.2无状态Bean项目,但到目前为止仍然没有任何效果。我希望任何人都能帮助我。

以下是我的eclipse上的EJB项目结构:

SLBean。Java语言

package com.example.ejbtest;

import javax.ejb.Stateless;


@Stateless
public class SLBean implements SLBeanRemote {

    public SLBean() {
    }

    @Override
    public String sayHello() {
        return "Hello World !!!";
    }

}

SLBeanRemote。Java语言

package com.example.ejbtest;

import javax.ejb.Remote;

@Remote
public interface SLBeanRemote {
    public String sayHello();
}

jboss-ejb-client.properties

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default

remote.connection.default.host=localhost
remote.connection.default.port=4447
remote.connection.default.username=user1
remote.connection.default.password=password
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

Test.java

package com.example.ejbtest;

import java.util.Properties;

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

public class Test {

    public static void main(String[] args) {
        Context context;
        try {
            Properties properties = new Properties();
            properties.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");
            properties.put("jboss.naming.client.ejb.context", true);
            context = new InitialContext(properties);

            String appName = "";
            String moduleName = "EJBTest";
            String distinctName = "";
            String beanName = SLBean.class.getSimpleName();
            String viewClassName = SLBeanRemote.class.getName();

            String ejbString = "ejb:" + appName + "/" + moduleName + "/"
                    + distinctName + "/" + beanName + "!" + viewClassName;

            System.out.println(ejbString);

            SLBeanRemote remote = (SLBeanRemote) context.lookup(ejbString);
            System.out.println(remote.sayHello());

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

因此,在我通过Eclipse在Wildfly Server上运行EJBTest项目后,我运行Test.java作为客户端程序来连接到远程无状态bean。

但我得到的是这样的错误:

html" target="_blank">线程“main”java中出现异常。lang.IllegalStateException:EJBClient00025:没有可用于处理调用上下文组织的[appName:,moduleName:EJBTest,distinctName:]组合的EJB接收器。jboss。ejb。客户EJBClientInvocationContext@28d72e3f位于组织。jboss。ejb。客户EJBClientContext。requireEJBReceiver(EJBClientContext.java:749)位于org。jboss。ejb。客户接收器拦截器。位于org的handleInvocation(ReceiverInterceptor.java:116)。jboss。ejb。客户EJBClientInvocationContext。sendRequest(EJBClientInvocationContext.java:186)

有人能帮忙吗?

共有1个答案

公孙新觉
2023-03-14

好的,我找到了答案。我犯了两个错误:

>

  • 我没有把jboss-ejb-client.properties文件放在正确的位置,即源文件夹的根目录(ejbModule)。

    根据本文,Wildfly 8的远程端口已合并到端口8080,因此我只需要更改远程。联系违约jboss ejb客户端中的8080端口。属性。

  •  类似资料:
    • 问题内容: 有状态会话Bean定义如下: 有状态会话Bean对象的状态由其实例变量的值组成。在有状态会话Bean中,实例变量代表唯一的客户端Bean会话的状态。因为客户端与其bean进行交互(“交谈”),所以这种状态通常称为对话状态。 无状态会话Bean定义如下: 无状态会话Bean无状态会话Bean不会与客户端保持对话状态。当客户端调用无状态Bean的方法时,该Bean的实例变量可能包含特定于该

    • 我想创建一个Java类,它将执行以下 1。使用WSDL加载/创建SOAPUI项目。 2。运行对该WSDL中的操作的请求。 这是我的soapjavatest.java文件(虽然这并不完整,但它只是在SOAP UI中注册一个项目并打印其中包含的操作)

    • 我有Windows10操作系统,我刚下载了JDK9,还有Netbeans 8.2版本的所有功能。当我想创建(Java)项目时,它就是做不到。不会给我一个错误什么的,只是这个空白屏幕。 这里有什么问题,所以我不能创建任何项目?

    • 问题内容: 我想创建一个Java类,该Java类将执行以下操作: 1.使用wsdl加载/创建SOAPUI项目。 2.对该wsdl中的操作运行请求。 这是我的SoapJavaTest.java文件(尽管还不完整,它只是在SOAP UI中注册一个项目并打印其中包含的操作) 我收到以下错误-‘NoSuchMethodError:org.apache.xmlbeans.XmlBeans.typeSyste

    • 每当我在新的beta版本xcode 9上运行在xcode 8.3中创建的项目时,我都会遇到以下错误: 无法更改文件的所有者:///users/AaronZheng/library/developer/coresimulator/devices/96629718-46b0-4775-8a31-49857ee620b8/data/library/caches/com.apple.mobile.inst