问题标签 [payara]
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.
spring - 在 Payara Glassfish 上部署 Spring Boot
我正在尝试在 Payara Galssfish 服务器上部署我的 Spring Boot 应用程序。但是我在部署过程中遇到了这个错误。
创建名为“systemConfigDao”的 bean 时出错:bean 初始化失败;嵌套异常是 java.lang.LinkageError:加载程序约束违规:加载程序(org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5 的实例)先前为名为“javax/cache/configuration/Configuration”的不同类型启动了加载</p >
java - @Inject bean 到 Jersey @Path JAX-RS 资源中是否需要 bean-discovery-mode="all"?
我正在使用 Payara 4.1.1.161。我有一个 Jersey @Path JAX-RS 资源,我想做的就是使用 CDI @Inject 一个 bean。我已经尝试了很多不同的组合来让它工作,但到目前为止,我让它成功工作的唯一方法是在 beans.xml 中设置 bean-discovery-mode="all"。
我知道“带注释”是首选模式,没有 beans.xml 更受青睐。但每次我尝试使用“注释”时,我要么调用 JAX-RS 资源失败,如下所示:
或者我在部署应用程序时失败,如下所示:
这是我的应用程序设置。
豆类.xml
JAX-RS 应用程序
JAX-RS 资源
我想注入的简单bean
同样,如果我的应用程序如上面的配置所示,并且 bean-discovery-mode="all" 一切似乎都正常,并且应用程序部署没有错误,并且在调用 JAX-RS 服务时,bean 被注入没有错误。但是当我切换到 bean-discovery-mode="annotated" 或者如果我根本没有 beans.xml 文件时,事情就会变得非常糟糕。
那么,您可以在没有 beans.xml 或 bean-discovery-mode="annotated" 的情况下将 bean @Inject 到运行 Payara 4.1.1.161 的 Jersy @Path JAX-RS 资源中吗?
glassfish - 使用 2 个实例(区域设置 + 远程)配置集群时,应用程序日志(Payara 4.1.1)不显示
我已经使用由两个实例组成的Payara Server完成了一个集群,一个是本地广告驻留在一个 debian VM 上,另一个是远程驻留在另一个 debian VM 上。我部署了一个测试应用程序,当我寻找日志时却找不到它们。更准确地说,我只提到一次几乎随机出现,然后仅此而已。它们显示在 Admin Server-->View Logs File --> instance 1(local) -->log file --> server.log中。
下面的测试应用
jsf - 在 servlet 过滤器中注入请求范围的 bean
是否可以在 servlet 过滤器中注入(CDI)请求范围的 bean?
我login.xhtml
的如下 -
在POST
此页面上,我的 servlet 过滤器中需要Login
bean,但它始终是null
. 我的后盾
以下是我将其注入过滤器的方式 -
现在从某种意义上说,容器注入了一个引用,但所有字段都是空的。我期待发布的表单数据值,即支持 bean 中提到的属性的值。
如果不可能,那么还有其他方法吗?意图是通过使用其他类型的作用域 bean 来避免创建会话。
更新-
我按照评论部分的建议做了一些更改,但问题中的 bean 的值仍然是null
我想做什么- 我有一个Login
请求并LoginController
查看范围 bean。这就是我最初的开始方式。因此,对于用户名和密码Login
以及loginController.login
登录操作。这按预期工作。我正在注入Login
所有LoginController
字段/ s 值。
我的要求是管理用户会话并实现记住我的功能。所以,为了做到这一点,我首先在其中创建了 cookie/s,loginController
并且它起作用了。
在这里,通过上述设置 - 首先我想避免不必要的会话创建。我希望请求登陆登录页面但没有会话。这一要求是所有这些过滤器和相关返工背后的驱动力。我使出<c:view transient="true">
。这我不确定,工作与否。现在,在您的一个答案中,您we should not put cookie and other authorization and authentication
在支持 bean 中写了相关的内容。
所以,我对自己说 - 好吧,我没有在我的代码中遵循良好的做法,为什么不编写一个过滤器,如果我可以在那里拦截Login
bean,我应该能够在那里执行我的身份验证/授权和 cookie 相关的东西. 这样,我可以避免点击view scoped loginController
并且没有不需要的会话。我可以以编程方式控制会话。这从来没有奏效,所以这就是我问这个问题的原因。
在您的一个答案中,您写道 -session creation is cheap
但我仍然想在login page
访问我的应用程序时避免它。
现在,我最终完成和工作的是 - 我的登录表单使用纯 html 输入字段,然后在登录操作中我以旧的 servlet 方式截取这些字段值。对于有效的尝试 - 我创建一个会话programmatically
并重定向。
请让我知道我是否可以改进。
jpa - 随机找到 CDI 托管 bean
我有一个分成 3 个模块的耳朵项目:
- 一个网络模块,
- 一个包含我的实体的 jar 模块,
- 一个ejb模块。
我有一个看起来像这样的类:
该类属于实体模块。
该类的一个实例是在我的@Entity 对象的@MappedSuperclass 中的@PreUpdate 挂钩中创建的。这个类(和所说的钩子)看起来像这样:
扩展此实体类的实体类与 UserServiceProviderEnterpriseImpl 类位于同一模块中。
我的问题出现在这一行:
...有时会抛出 NoSuchElementException (由 BeanManager#getBeans 方法返回的空 Set 的原因),但有时不会。这个问题似乎是部署范围的,因为我可以部署我的耳朵,这将在每次调用 getUserService() 方法时发生,但在重新部署后,相同的场景可以完全正常工作(BeanManager#getBeans 方法不返回一个空的集合了)。
所以我的问题是:为什么这段代码的行为方式是这样的?难道我做错了什么?这种随机性的来源是什么?
如果这有帮助,我的托管 bean 看起来像这样(它属于 web 模块):
我正在使用 Payara 4.1.1.162。
更新
我已经尝试过但没有用的东西:
- 使用 application.xml 中的 initialize-in-order 标记(设置为 true)并更改模块的顺序,
- 将 Payara 更新到可用的最新版本 (4.1.1.163),
- 通过命令行手动部署应用程序(我通常从 IntelliJ 执行此操作),
- 删除 BusinessObject#getUserServiceProvider() 方法中的“静态”关键字,
- 在我更改 getUserService() 方法代码以使用此答案https://stackoverflow.com/a/40328987/7090063提供的解决方案之后,所有这一切。
根据要求,这是我唯一的 beans.xml,它位于我的 src/main/webapp/WEB-INF 目录中的 web 模块中:
这是我到目前为止提到的类的耳朵结构的总结:
这些是打包在我的war文件的WEB-INF/lib目录中的jar:
更新 2
我在 Payara 中为 org.weld.jboss 创建了一个记录器。这是我在工作时得到的:
当它没有时:
java - 设置 arquillian.xml 和 glassfish-resource.xml
我正在关注本教程,但我在设置 jdbc 连接时遇到了一些问题。
在我的 arquillian.xml 中,我写道:
当我运行测试时,我收到此警告:
所以我认为不支持“resourceXml”......我如何告诉 arquillian 使用该文件?
此外,在那个文件中我声明了一个 jdbc/test. 我必须在persistence.xml 中写什么才能使用该数据库连接?
先感谢您
更新
我希望在“src/test/resources-payara-remote/glassfish-resources.xml”中使用我的 test-db 声明 jdbc 连接(不在远程服务器中创建 jdbc 连接),但我不知道如何将 arquillian 设置为使用 .xml 文件中声明的 jdbc 连接。
java - 出于某种奇怪的原因,我无法运行我的 JPA 代码。“长度不能为负数。”
当我尝试使用 JPA 将记录添加到我的数据库时,我遇到了这个奇怪的错误。我以前使用相同的技术在不同的表中添加其他记录。我不明白我得到的错误。
以下代码:
帮助回复实体类。
java - Payara Micro - 部署后的 404
我想试试这个很酷的微应用服务器 - Payara Micro,但我无法部署最简单的示例。我使用没有依赖关系的 JavaEE7 从 netbeans 创建了一个空白的 web-app maven 项目。尝试编译它(编译不多),并使用 Glassfish 4.1.1 成功运行它 - 出现 Hello World 欢迎页面,一切正常。
进行了清理和构建,并尝试将生成的 WARfile 部署到 payara。(java -jar payara-micro.jar --deploy mywarfile.war) 启动很快,只注意到输出中有两条消息 - >“No META-INF/deploy”目录和“Deployed 1 archives”。试图打开索引页面,但是 oops -> 错误 404(如下所示)。
这个项目真的很简单,我可能在部署时做错了。也许项目结构中的一些错误?在此我介绍使用的原始项目结构:
非常感谢您提供任何有价值的解决方案/反馈。我想我只是忽略了一些次要的,愚蠢的事情。
编辑:附上pomfile。尝试使用两个依赖项运行它,仅使用 EE 或 payara,但没有变化:(
http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0
java - 调用 Post-Method 导致“405 Method not allowed”-错误
我已经在 Eclipse 和 JAVA EE 上启动了一个动态 Web 项目,并尝试编写一个安静的服务。我的操作系统是 Windows 7,服务器是 Payara。问题是,只有“GET”和“OPTIONS”被允许作为http-methods。我试图更改 web.xml 以便它接受 POST 请求
web.xml 尽管如此,仍然无法向服务器发出 POST 请求。我得到一个“405 Method not allowed”-错误。在响应头中仍然存在“Allowed: GET, OPTIONS”。除了将其写入 web.xml 文件之外,还有什么必须做的以允许服务器接受 POST 请求吗?