问题标签 [application-client]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jakarta-ee - 通过 GlassFish 中的应用程序客户端容器对用户进行身份验证过于雄心勃勃?
问题
当我在应用程序客户端的类中注入 @EJB 代理Main
,并且 EJB 有一个方法要求用户具有特定角色时,应用程序客户端容器 (ACC) 将要求用户尽快登录应用程序客户端启动。ACC 不会区分客户端考虑调用的方法,因此客户端实际上需要哪些角色(如果有的话)。实际上,这意味着我的客户端无法正确连接到服务器,如果只是 EJB 的一个单一方法具有一个需要特定角色的方法。如果我们显式地用@PermitAll
. ACC 仍然会提示输入用户名和密码,如果没有给出,那么我的 GlassFish 3.1.2.2 (build 5) 实现将中止一切并说“用户取消了身份验证”。
设置你的测试环境!
像这样声明一个远程接口:
编写EJB(我的问题与单例有关,所以我不敢在这里使用另一个会话注释!):
至于客户端部分,这是我能想到的最小可能的实现:
结果
您认为客户端成功地对该echoGuest
方法进行了“匿名”调用吗?不,我发现 ACC 甚至会在@EJB
注入之前强制客户端提供用户名和密码。简单地说,如果我们不能混合从应用程序客户端到 EJB 的访问身份验证。上面的解决方案是从方法中删除@RolesAllowed("admin")
注释echoAdmin
。
从某种意义上说,这完全有道理。ACC 仅在客户端启动期间处于活动状态,这正是我们需要将所有注入的资源放在应用程序客户端中的原因,无论是在类中还是在Main
类中static
。ACC 根本无法确切知道 EJB 中的哪些方法将被调用。
好的,但这不会破坏@PermitAll
和@RolesAllowed
注释的规范和预期行为吗?世界上没有任何方法可以为应用程序客户端提供匿名访问 EJB 的权限,该 EJB 只有一个过时的、从未调用过的需要特定角色的方法?到目前为止,我不仅必须将这些方法与我认为可以而且应该做的注释分开,而且我还必须重构逻辑以完全分开 EJB:s。感觉很难:'(
jakarta-ee - Java EE 应用程序客户端中的@Inject 不起作用?
问题
在应用程序客户端中注入企业 Java bean @EJB
,使用 Java Web 启动并从 GlassFish 3.1.2.2(构建 5)服务器启动。只要满足要求[见底部注释]。但是,如果我使用 注入某些东西,一切都会失败@Inject
,尽管我们尝试注入任何资源类型。我知道它失败了,因为NullPointerException
如果我尝试使用注入的资源,我会得到一个。这告诉我注释处理器已经完全忘记了@Inject
。
我不仅@EJB
对同时完美地工作@Inject
根本不工作很感兴趣,而且我还认为这种注入的“静默失败”一定违反了Java EE 6 规范。该规范在第 69 页上说:
如果容器未能找到注入所需的资源,则该类的初始化必须失败,并且该类不得投入使用。
此问题可能与GlassFish中的错误有关或表达。
我的最终目标..
.. 是将 API 与实现分开,以便在需要进行性能测试和分析我的应用程序时,我可以更轻松地尝试不同的实现。但是我认为这种设计模式几乎不可能在应用程序客户端中重新创建?我的直接方法是创建Main
类中所有实现的新实例或使用工厂。当然,最好的解决方案是使用限定符!
注意:在应用程序客户端中注入的要求是必须为组件启用 CDI(包必须包含文件beans.xml,如果您习惯于注解,很可能是空的!)并且在应用程序客户端中对 CDI 的支持实际上是可选的,具体实施。此外,如果启用并支持 CDI,那么您应该知道应用程序客户端容器只能在客户端启动期间处于活动状态,因此需要将资源注入到Main
类中并且字段是static
.
java - java应用程序客户端CORBA异常
我是 Java EE 的新手。我一直在尝试开发一个便携式应用程序客户端,但我无法解决问题。这将是我的学位工作。
很难找到有关应用程序客户端的信息。有人可以告诉我,我应该如何设置服务器地址以使我的应用程序可移植?
但问题是:当我尝试调用返回可序列化对象的 EJB 方法时,服务器会抛出 CORBA 异常。在客户端,我使用我在论坛中找到的这段代码:
在方法调用中,我遇到了这个巨大的异常:
java - GlassFish 和应用程序客户端 Web 启动:无效的 Http 响应
我使用本教程创建了企业应用程序和企业应用程序客户端。两者都部署到我本地网络中的远程 GlassFish 服务器。当我尝试使用 Java Web Start 运行应用程序客户端时
javaws http://192.168.0.234:8080/ApplicationClient1
,我在 JWS 窗口中看到一个错误:
JaNeLA JNLP 分析器显示一个错误:
客户端的 Java 版本是 7u40,GlassFish 版本是 4,服务器上的 Java 版本是 7u10。
任何帮助将不胜感激
java - 如何运行 weblogic 12c 服务器的应用程序客户端容器
我正在尝试正确学习 Java EE,但遇到了一个问题。我无法让客户使用我的 EE 应用程序。我之前问过这个问题并环顾四周,发现如果我需要main
使用 EE 功能运行我的方法,那么我需要一个应用程序客户端容器。
我正在尝试的客户端代码是
如何通过 weblogic 12c 的应用程序客户端容器运行此客户端?
glassfish - 是否可以在也使用 bean 注入的 Glassfish 应用程序客户端中使用编程登录?
在 Glassfish Java EE 7 教程中玩“购物车安全”示例时,我尝试进行“程序登录”。
在“CartClient”中,很容易进行编程登录(比如在构造函数中)。但问题是正常的回调登录机制先运行,交互认证成功后,程序化登录才生效。
问题是如何在注入调用回调登录方案之前在应用程序客户端中进行编程登录。
jakarta-ee - Java EE 应用程序客户端 VS Web 应用程序
应用程序客户端似乎是 Java EE 中的二流公民,我想知道为什么?例如:
- Java EE 示例有许多 Web 应用程序来解释每个用例,但没有一个应用程序客户端示例。
- google 上的信息或教程很少。
- Java EE 也为应用程序客户端提供了许多优势。
应用程序客户端的好处:
- 没有浏览器会为每次加载添加一致的延迟(我让客户在这里简单地拒绝基于 Web 的应用程序)。
- 更多控制(例如处理互联网/网络中断)
- Webstart 应该使它几乎同样顺利地部署给用户。
对 Web 应用程序的好处:
- 在浏览器中运行,因此最终用户的安装为零。
- 已知的技术和模式等,为开发人员提供 CSS 和 HTML,为用户提供熟悉的浏览器。
那么每个的限制和优点/缺点是什么?
jakarta-ee - 为什么 wildfly appclient 脚本会启动一个新的 wildfly 实例?
应用程序客户端是在“应用程序客户端容器”中运行的 Java EE 客户端应用程序。
但是这里的命令行用法:
https://docs.jboss.org/author/display/WFLY8/Application+Client+Reference
似乎启动了一个全新的 wildfly 实例,即使--host=localhost
设置了标志。我没有看到任何证据表明它正在连接到我正在运行的服务器。
我误解了这些是如何工作的吗?如何在正在运行的服务器中运行此应用程序客户端?
java - Application Server Application-Client 的用途是什么?
如标题所述,Application Server Application-Client 的用途是什么?
搜索网络,对于应用程序服务器的应用程序客户端是什么以及它的目的是什么,确实没有太多解释。
从我可以收集到的信息来看,应用程序客户端就像浏览器一样,它们都访问托管在应用程序服务器上的应用程序,但应用程序客户端提供了更好的(图形?)交互性?它还创建了一个容器,允许访问应用程序服务器的资源,或者它的 Java EE 资源?
但我仍然真的不明白它是如何组合在一起的,或者它到底是什么。
elasticsearch - 是否有适用于 ElasticSeach 6.4.3 的应用程序客户端(类似于 DBvear)
我试图从应用程序客户端(如 DBvear)查看我的节点数据,但没有找到相关信息。有人找到将 DBvear 连接到此版本或通过类似应用程序查看数据的方法?