Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >EJB7:没有可用的JBoss接收器

EJB7:没有可用的JBoss接收器
EN

Stack Overflow用户
提问于 2012-07-09 06:48:20
回答 3查看 5.4K关注 0票数 1

我是JBoss 7的新手,我正面临着奇怪的行为。有时,当我尝试调用会话bean时,会遇到以下异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.util.List myServlet.getData() throws myException' threw an unexpected exception: java.lang.IllegalStateException: No EJB receiver available for handling [appName:myAppNameEE,modulename:myModuleEJB,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@3e23bd28

这通常发生在从Eclipse运行我的GWT应用程序时。异常并不总是发生。有时,它发生的次数比其他人要少。有时,每次我调用会话bean时都会发生这种情况,这是一种痛苦。我阅读了教程(https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI?_sscc=t),我非常确定jboss-ejb-client.properties位于正确的位置。

我的jboss-ejb-client看起来像这样:

endpoint.name=myAppEE/myAppEJB 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.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

它位于:

myAppEJB\ejbModule\com\myApp\ejb\conf

商务代表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class myAppServerDelegate extends ServerDelegate{

private Logger logger = Logger.getLogger(myAppServerDelegate.class.getName());
private myAppRemote theSession = null;

public myAppServerDelegate() throws Exception {

    try {
        theSession = (myAppRemote) getJndiContext().lookup(getJindiLookupName(myAppServerDelegate.class, myAppRemote.class));
    } catch (NamingException e) {
        throw (e);
    }
}

public List<myDataDTO> getAllmyDataBy(String a, String b,
        String c, String d,Integer e,
        Integer f) throws ServerDelegateException {

        return theSession.getAllmyDataBy(a, b, c, d,e,f);
}

public Integer getCountmyDataBy(String a, String b, String c, String d) throws ServerDelegateException {

    return theSession.getCountmyDataBy(a, b, c, d);
}
...

public String getServiceMessage() {

    return theSession.getServiceMessage();
}

...
}

会话bean:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Stateless

public class myAppSession implements myAppRemote {

private Logger logger = Logger.getLogger(myAppSession.class.getName());
@PersistenceContext
protected EntityManager entityManager;
@EJB
private myAppHomeLocal beanmyApp;

...

public String getServiceMessage() {

    return "MESSAGGIODISERVIZIO";
}

public List<myDataDTO> getAllmyDataBy(String a,String b,
        String c, String d,Integer e,
        Integer f) throws ServerDelegateException {

    logger.info("myAppSession.getAllmyDataBy.");
    List<myData> entityList = findByParms(a, b, c, d,e,f);
    return myDataAssemblyDTO.getmyDataDTOList(entityList);
}

public Integer getCountmyDataBy(String a,String b, String c, String d) throws ServerDelegateException {

    return findByParmsCount(a, b, c, d);
}
...
}

servlet:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...

@SuppressWarning(“串行”)

公共类MyGenericServiceImpl扩展了RemoteServiceServlet实现的MyGenericService {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private MyAppServerDelegate myAppServerDelegate = null;

public MyGenericServiceImpl() throws Exception{
    super();
    myAppServerDelegate = new MyAppServerDelegate();
}

private MyAppServerDelegate getDelegate()    {
    return myAppServerDelegate;
}

private myGWTException buildLocalExceptionFromServerException(ServerDelegateException sde)    {
    myGWTException x = new myGWTException();
    x.setParms(sde.guiMessage,sde.timestamp,sde.tipoEvento);
    return x;
}

@Override
public PagingLoadResult<myDataBean> getAllmyDataBy(String a, String b, String c, PagingLoadConfig plc) throws MyGWTException {
    try    {
        String cs = ((UserSessionBean)this.getThreadLocalRequest().getSession().getAttribute("user")).getCodiceStudio();
        List<myDataBean> tsb = MyDataClientAssembly.getMyDataBeanList(myAppServerDelegate.getAllmyDataBy(cs, a, b, c, plc.getOffset(), plc.getLimit()));
        return new BasePagingLoadResult<MyDataBean>(tsb, plc.getOffset(), myDataServerDelegate.getCountmyDataBy(cs, a, b, c));
    } catch (ServerDelegateException sde)    {
        throw buildLocalExceptionFromServerException(sde);
    }
}

@Override
public String getServiceMessage() {
    return getDelegate().getServiceMessage();
}

@Override
public Integer getCountmyDataBy(String a, String b, String c) throws AmbrogioGWTException {
    try    {
        String cs = ((UserSessionBean)this.getThreadLocalRequest().getSession().getAttribute("user")).getCs();
        return myAppServerDelegate.getCountmtDataBy(cs, a, b, c);
    } catch (ServerDelegateException sde)    {
        throw buildLocalExceptionFromServerException(sde);
    }
}
}

服务器委托:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ServerDelegate {

static public String getJindiLookupName( Class<?> theBeanClass, Class<?> theSessionClass) throws NamingException    {
    String jbossServerName = System.getProperty("jboss.server.name");
    if (jbossServerName== null ||  "".equals(jbossServerName)){
        return "myAppEE/myAppEJB/"+ theBeanClass.getSimpleName() + "!" + theSessionClass.getName();
    }else{
        return "java:global/myAppEE/myAppEJB/" + theBeanClass.getSimpleName() + "!" + theSessionClass.getName();
    }       
}

static public Context getJndiContext() throws NamingException    {
    System.out.println("ServerDelegate.getJndiContext");
    final Properties jndiProperties = new Properties();
    String jbossServerName = System.getProperty("jboss.server.name");
    if (jbossServerName== null ||  "".equals(jbossServerName)){
        jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, org.jboss.naming.remote.client.InitialContextFactory.class.getName());
        jndiProperties.put(Context.PROVIDER_URL, "remote://localhost:4447");
        jndiProperties.put("jboss.naming.client.ejb.context", true);
jndiProperties.put("jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false");
        }             
    return new InitialContext(jndiProperties);       
    }
}

我搞不懂发生了什么事。蒂娅。

弗朗西斯科

EN

回答 3

Stack Overflow用户

发布于 2012-08-31 14:32:56

这可能是使用Local vs Remote接口的问题,也可能是连接问题。

尝试在org.jboss.ejb.client包上启用TRACE日志级别。如果您的类路径中已经有一个log4j.properties,请包括下面这行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.logger.org.jboss.ejb.client=TRACE

This post包含用于调试JBoss EJB客户端的其他线索。

票数 2
EN

Stack Overflow用户

发布于 2012-11-09 18:45:14

有一个我必须包含在mavens pom.xml文件中的依赖项列表。其中包括

  1. jboss-ejb-client
  2. xnio-nio
  3. jboss-remote-naming
  4. jboss-sasl
  5. jboss-transaction-ap
  6. jboss-marshalling
  7. jboss-marshalling-river

我能够成功地从我的独立java客户机发出远程请求,但是我确实看到了以下问题

Jboss 7.1: 13:43:25,028信息stdout Hello world 13:43:25,825 ERROR org.jboss.remoting.remote.connection (Remoting "mycomputername“read-1) JBREM000200:远程连接失败: java.io.IOException:现有连接被远程主机强制关闭

我的java ejb客户端:警告Remoting "client-endpoint" task-2 -收到标题为0xffffffff的不支持的消息

在线阅读的人们似乎已经通过更新某些jars的版本来解决了这个问题。然而,我还没有找到一个成功的解决方案。

更新:在部署独立的ejb客户端时,我在类路径中包含了jboss-client.jar。效果很好。

java "$JBOSS_HOME/bin/client/jboss-client.jar;./my-ejb-client.jar“-classpath com.test.Myclient

票数 0
EN

Stack Overflow用户

发布于 2014-02-24 07:17:58

在类MyAppServerDelegate中,必须在以下方法中而不是在构造函数中实例化属性"theSession“:

  • getAllmyDataBy();
  • getCountmyDataBy();
  • getServiceMessage();

theSession方法调用的结果应该存储在一个临时变量中,然后调用getJndiContext().close(),然后返回临时值。

每个连接都必须显式关闭。实际上,当达到允许的最大连接数时,就会发生异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11390217

复制
相关文章
Go 方法接收器:选择值接收器还是指针接收器?
许多 Go 初学者在方法接收器的选择上可能会感到困惑,不知道该选择值接收器还是指针接收器。本文将会对方法接收器进行介绍,并给出如何选择正确方法接收器的指导建议。
陈明勇
2023/05/24
1.1K0
Go 方法接收器:选择值接收器还是指针接收器?
谁说Postgresql 没有靠谱的高可用
上期说到了见证服务器,见证服务器的功能到底有什么用,其实如同各种高可用中(这里说的是完备的高可用)大部分都是三台,因为怕什么,怕脑裂,因为高可用要面对的问题是很多的,尤其网络的问题,如果因为网络的原因造成服务器本身没有问题,但在网络断开的某个时间段造成了,主从切换,则就会造成双主的尴尬现象。所以在数据中心或比较关键的业务中,使用的数据库服务器的高可用也是要妥妥当当的。wintness不是一个成熟的备用节点,也没有集成到复制中,但是在决定哪个网络段占多数时,它有效地代表了“投票”。可以使用repmgr见证寄存器设置见证服务器。但前提是你必须使用repmgrd ,每个节点都需要运行这个程序(如果你不知道什么是repmgrd 请参看之前的文字 1 2 3 )
AustinDatabases
2019/12/26
1.9K2
谁说Postgresql 没有靠谱的高可用
谁说postgresql 没有靠谱的高可用(3)
1 failover='automatic' #如果侦测到失败,则进行自动切换,默认为手动
AustinDatabases
2019/12/24
2.6K1
谁说postgresql  没有靠谱的高可用(3)
jboss的时区问题
默认情况下,jboss启动时,使用的时区是“+0:00”区,而中国所在的时间为"+8:00"区(所谓的东8区),最终java取当前时间时,总比北京时间慢8个小时 解决办法: 新建一个环境变量JAVA_OPTS,值为: -Xms256m -Xmx512m -XX:PermSize=128M  -XX:MaxPermSize=256m -Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8 -Duser.language=zh 注:关键是红色部分,其它部分仅供参考
菩提树下的杨过
2018/01/24
1.5K0
谁说postgresql 没有靠谱的高可用(2)
repmgr -f /etc/repmgr.conf standby switchover -U repmgr --verbose
AustinDatabases
2019/12/17
1.4K0
谁说postgresql  没有靠谱的高可用(2)
Linux下Jboss安装使用+Jboss部署脚本「建议收藏」
Jboss是Java EE应用服务器(就像Apache是web服务器一样),专门用来运行Java EE程序的。
全栈程序员站长
2022/09/27
4.9K0
Linux下Jboss安装使用+Jboss部署脚本「建议收藏」
谁说postgresql 没有靠谱的高可用(6)
接上期,(如果看不懂的,请从第一期看,否则可能和看天书没两样),最近在梳理一些问题的时候,发现一个现象,大部分出现问题后,解决就完了,网上很多文字,大多都是这样,先提出一个问题,然后就给出答案,然后就么有然后后了。而这样的结果一般是好不了的,这和狗熊掰棒子没啥区别。所以才有了这期,这期是要说说repmgr 的一些系统表,一些常见的被问及的问题,(一些深层的问题,还得继续研究)
AustinDatabases
2020/02/13
2.3K0
谁说postgresql 没有靠谱的高可用(6)
谁说 PostgreSQL 没有靠谱的高可用(1)
最近问postgresql 那个高可用靠谱的人越来越多,其实我也试过几种postgresql 的高可用方案,而最近听到的声音是 PostgreSQL 没有靠谱的高可用方案。所以就有了这篇文字
AustinDatabases
2019/12/16
3.6K2
Jboss安装
 1、下载http://pan.baidu.com/s/1bnmYN7p,解压jboss-as-7.1.1.Final.zip即完成安装
week
2018/08/27
1.3K0
JBoss 主要模块
本文介绍了JBoss的主要模块,包括JBoss EJB容器、JBossNS、JBossTX、部署服务、JBossMQ、JBossSX和JBossCX。JBoss EJB容器是JBoss服务器的核心实现,支持热部署。JBossNS提供命名服务,用于定位对象和资源。JBossTX支持JTA/JTS和交易管理。部署服务支持EJB、Web应用和企业级应用的部署。JBossMQ是Java消息服务规范实现。JBossSX支持安全实现,包括基于JAAS的或不支持JAAS机制的安全。JBossCX实现了部分JCA功能。Web服务器支持Web容器和Servlet引擎。
YGingko
2017/12/28
1.5K0
eclipse + JBoss 5 +
有时客户端程序(如JSP、Servlet)会和EJB组件运行在同一个JVM上,如在同一个J2EE服务器(JBoss、Weblogic等)中运行。这时就没必要 再通过远程(remote)接口访问Session Bean了,因为客户端和session bean都在同一个jvm上,只需要通过本地接口(local)访问即可。就象直接访问本地类一样(当然,不能直接访问EJB类,需要使用jndi和local接口来获得本地接口对象。当然,也可以通过remote接口来访问ejb,不过这样会有一些性能损失。就象在同一台机器上还通过socket进行访问一样,很多性能都损耗在网络上了。下面我们来举个简单的例子来看一下如何使用本地接口来访问session bean。     先建立一个session bean本地接口,代码如下:
py3study
2020/01/14
6700
jboss下载和安装[通俗易懂]
1. 下载 http://www.jboss.org/jbossas/downloads/ 选择Certified Java EE 6 Full Profile版本,我下载的是 jboss-as-7.1.1.Final.zip。 2. 解压 jboss-as-7.1.1.Final.zip 注意整个路径必须没有空格才行。 3. 配置环境变量 JRE 环境变量 JAVA_HOME JRE的路径 CLASSPATH %JAVA_HOME%\lib PATH %JAVA_HOME%\bin
全栈程序员站长
2022/09/28
2.5K0
jboss下载和安装[通俗易懂]
jboss 下载_JbusDriver
http://sourceforge.net/projects/jboss/files/JBoss/
全栈程序员站长
2022/11/09
1.8K0
jboss 下载_JbusDriver
Android基础总结(4)——广播接收器
  在Android中的每个应用程序可以对自己感兴趣的广播进行注册,这样该程序就只会接收自己所关心的广播内容,这些广播可能来自于系统的,也可能来自于其他应用程序的。Android提供了一整套完整的API,允许应用程序自由地发送和接收广播。发送广播就是借助之前了解过的Intent,接收广播则需要用到广播接收器(Broadcast Receiver)。. 1、广播的类型 标准广播:Normal broadcast,是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因
mukekeheart
2018/02/27
1.1K0
注册广播接收器registerReceiver
从registerReceiver(BroadcastReceiver receiver,IntentFilter filter)出发
全栈程序员站长
2022/11/17
1.1K0
超经典的JBOSS入门文章
前言   本文是为想在JBOSS环境下进行EJB开发的读者而写的,在阅读本文之前,你最好对EJB有一个基本了解。   JBOSS是一个开放源码的免费EJB服务器,它实现了其它J2EE所规定的大多数功能,现在sun公司已经把JBOSS作为J2EE1.4的标准实现服务器了,本文就带领大家从Jboss3.2.6的安装开始,一直到开发出一个完整的”hello,world”的ejb为止。   JBOSS的安装与启动   如果你是第一次使用JBOSS,你一定会感到很沮丧,因为它虽然是开放源码,并可以免费下载,但是它的
张善友
2018/01/19
2.5K0
jboss CLI 命令行接口学习(适用JBOSS EAP 6.2+)
一、确认CLI所使用的端口 以domain模式为例,查看domain controller(也就是master主机)上的host.xml 1 <management-interfaces> 2 <native-interface security-realm="ManagementRealm"> 3 <socket interface="management" port="${jboss.management.native.port:9999}"/> 4 </native-i
菩提树下的杨过
2018/01/18
2K0
jboss CLI 命令行接口学习(适用JBOSS EAP 6.2+)
没有后台可用的 app 快速搭建动态ios审核开关的方法
最近发现苹果的机审有所改变,希望大家不要欺骗 App Store Review Team,如果侥幸上架成功请在一个月后在更成马甲包,否则价格昂贵的公司开发者账号就会马上被封,但是近来的 Uber 审核事件,以及发生在我个人身上的 审核团队不对我的长篇详细辩解作正面回答,且无限期推迟我的 App 审核的事情发生后,我彻底对这个团队没有了尊重,作为能力有限的个人开发者,我会选择通过一定的技术手段来欺骗审核团队。
jiang chen
2018/12/23
1.5K0
没有后台可用的 app 快速搭建动态ios审核开关的方法
Jboss漏洞利用总结
访问控制不严导致的漏洞 Jboss管理控制台 Jboss4.x jboss 4.x 及其之前的版本 console 管理路径为 /jmx-console/ 和 /web-console/ 。 jmx-console的配置文件为
黑白天安全
2020/08/04
6.4K0
Jboss漏洞利用总结
点击加载更多

相似问题

EJB7: JBoss over HTTP

11

Spring和JBoss AS7 -没有可用的EJB接收器

30

JBoss 7.1.1. for java.lang.IllegalStateException:没有可用于处理的EJB接收器

22

调用EJB时出现JNDI JBoss错误-没有可用的EJB接收器可供处理

21

线程“主”java.lang.IllegalStateException中的异常:没有EJB接收器可用于处理-- jboss 7.1.1.Final

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文