Tag: jboss

在Hibernate教程中添加CONSTRAINT

这个例子来自JBOSS的hibernate教程。 链接在那里: http : //docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html#embeddables 。 例79.单向@OneToMany关联 @Entity(name = “Person”) public static class Person { @Id @GeneratedValue private Long id; @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) private List phones = new ArrayList(); public Person() { } public List getPhones() { return phones; } } @Entity(name = “Phone”) public static class Phone { @Id @GeneratedValue private […]

在HTTP和HTTPS之间切换时,JSessionID会被覆盖。 怎么解决?

我们有以下情况: 转到http :// website /并单击指向http :// website / appX的链接 检查cookie是否显示带有secure = NO的JSessionID。 打开另一个浏览器窗口或选项卡,然后转到https :// website /并单击指向https :// website / appY的链接。 检查cookie是否显示带有secure = YES的JSessionID。 尝试与步骤1中创建的窗口/选项卡进行交互。我的会话已过期… 如果我们重复这些步骤,但在步骤2中使用https :// website / appX而不是https :// website / appY,那么JSessionID cookie将保留Secure = NO。 所有cookie都有JSessionId,最后附加了jvmRoute。 – 我们正在使用: Apache(2.2.3-43.el5_5.3)+ mod_jk(带粘性会话)和负载均衡器配置到几个JBoss实例(v 4.3.0)。 我发现只有一个完全相同问题的链接(通常其他的使用PHP): http : //threebit.net/mail-archive/tomcat-users/msg17687.html 问:我们如何防止JSessionId cookie被重写?

无法通过JBoss远程访问数据源

上下文 我有一个JBoss,我成功地部署了一个数据源mydatasource-ds.xml 。 它的JNDI名称是java:mydatasourceDS 。 JBoss声称数据源已成功部署。 JMX控制台也很好。 问题 我想从在单独的JVM上启动的客户端Java应用程序中使用此数据源。 但我得到一个例外,说java:mydatasourceDS无法找到。 java.lang.ClassCastException: javax.naming.Reference cannot be cast to javax.sql.DataSource 细节 这是persistence.xml文件: java:mydatasourceDS 这是jndi.properties文件: java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=jnp://localhost:1099 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 这是应用程序类路径: jndi.properties log4j.properties META-INF\persistence.xml hibernate-jpa-2.0-api-1.0.0.Final.jar jnp-client-5.0.3.GA.jar jboss-common-core-2.2.14.GA.jar jboss-logging-spi-2.1.0.GA.jar hibernate-entitymanager-3.6.4.Final.jar hibernate-core-3.6.4.Final.jar antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar hibernate-commons-annotations-3.2.0.Final.jar jta-1.1.jar javassist-3.12.0.GA.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar log4j-1.2.16.jar xstream-1.4.1.jar xmlpull-1.1.3.1.jar xpp3_min-1.1.4c.jar 编辑我找到了问题的根源。 我的客户端应用程序可用的javax.sql.DataSource不是从JNDI收到的。 我从JNDI收到的是JBoss javax.sql.DataSource 。 相同的名称但是稍微不同的类因此ClassCastException … 在撰写本文时,可以在此包中找到JBoss javax.sql.DataSource: […]

JBoss 7.1.1.Final的JSF实现版本是什么?

JBoss 7.1.1.Final的JSF实现版本是什么? 我怎么知道,以及如何升级它。 我只知道它是mojarra实现,但仅此而已。 提前致谢。

JSF语言环境:浏览器定义的语言似乎被忽略了

目前我的团队正在用java开发一个web 2.0应用程序,我们正在使用JSF作为表示层。 我们从表示层开始,所以我们还没有添加业务和数据层。 我们使用的技术: – JSF(Mojarra 2.0.3) – Primefaces 2.1(JSF组件库) – Spring Security 3.0.5 – jBoss 5.1 我被要求为应用添加区域设置支持。 所以我配置了faces-config.xml文件,如下所示: en pt en es com…i18n.MessageBundle 我创建了MessageBundle后缀文件并部署了应用程序。 我读到JSF使用三个条件来选择语言环境:1)请求语言环境(Accept-Language请求标头)和支持的语言环境之间的匹配2)faces配置文件中定义的应用程序默认语言环境3)JVM默认语言环境 当我尝试在浏览器选项中更改语言时,应用程序不会更改区域设置。 即使我只配置一种语言而不是默认语言。 我在这里错过了什么吗? 这是预期的,或者实际上它应该在我更改浏览器语言时改变内容(假设它是受支持的语言)? 我非常感谢任何提示或至少指示我在哪里可以找到答案,因为我已经谷歌搜索没有运气。 提前致谢。

在不同的网络上JBoss UnknownHostException

让JBoss在网络上工作时遇到了一些问题。 作为一个快速概述,我们有一个开发网络(我称之为DEV)和一个客户端网络(比如说…客户端!)。 它们通过防火墙连接。 在Dev网络中,服务器称为192.168.100.50,在客户端网络上称为10.0.100.50。 两个网络中的DNS通过DNS(sqlserver.dev.net)解析相关的IP。 sqlserver提供2个服务,一个通过.NET Web服务,另一个通过JBoss。 在DEV网络上运行客户端时,两种服务都可以正常工作。 在CLIENT网络上时,只有.NET服务可用。 尝试在以下代码中执行ContextLookup时,JBoss客户端抛出UnknownHostException: Properties p = new Properties(); p.put(“java.naming.factory.initial”, “org.jnp.interfaces.NamingContextFactory”); p.put(“java.naming.factory.url.pkgs”, “=org.jboss.naming:org.jboss.jnp.interfaces”); p.put(“java.naming.provider.url”, “sqlserver.dev.net:1199”); try { Context c = new InitialContext(p); cm = (ServiceRemote)c.lookup(Service.RemoteJNDIName); } catch (NamingException e) { e.printStackTrace(); throw new RuntimeException(e); } 例外情况是: 根exception是java.rmi.UnknownHostException:未知主机:SQLserver 我可以确认问题是客户端正在尝试连接到没有域名的’sqlserver’。 这已经通过将’sqlserver’添加到客户端的主机文件中进行了测试,并且工作正常。 另外,“SQLserver”的拼写很有趣,因为这是Windows主机报告主机名的方式,而不是它如何存储在DNS中。 我最好的猜测是,一旦客户端进行初始连接,JBoss会告诉客户端将来连接到’SQLserver’,客户端无法解析。 我已经尝试将以下系统属性设置为sqlserver的FQDN: jgroups.bind_addr bind.address java.rmi.server.hostname 有没有人有任何想法?

JBoss 4.2.2 Web服务soap:地址

我在JBoss 4.2.2中将EJB3 bean部署为Web服务。 在生产中,服务器位于Apache服务器后面,该服务器将请求重定向到Jboss服务器。 这使得WSDL具有错误的soap:地址位置。 我能够通过server \ default \ deploy \ jbossws.sar \ jbossws.beans \ META-INF中的配置文件更改端口和主机名,但是我无法将协议切换到https 。 我发现的唯一方法是指定我自己的WSDL(通过这里 )。 通过在WSDL中指定https,JBoss会发现它是https。 但是,尽管在生产中这很好,但在QA中没有使用https(并且连接到它的服务需要有效的https,因此自签名证书不会这样做)。 因此,虽然我可以获得QA的真实证书(假证书颁发机构不会这样做),但我宁愿将其作为QA中的http。 有没有办法强制JBoss更改协议或以其他方式更改地址,以便它在soap:地址中使用http? 编辑:似乎这个问题最近在他们的bug数据库中提出并被拒绝。 这对我来说意味着他们有一个解决方法。 但它是什么? 进一步编辑:此时,我知道EJB3拦截器不起作用( 它们根本没有被激活 ),并且SOAPHandler不拦截调用以检索WSDL(经过测试 – 它们会拾取其他所有内容)。 所以filter的想法很吸引人,但目前还不清楚它的位置。 JBoss显示的URL是: 端点名称jboss.ws:context=QuickBooks-QuickBooksWebService,endpoint=QBWSBeanEJB端点地址https://127.0.0.1:8443/QuickBooks-QuickBooksWebService/QBWSBeanEJB?wsdl (注意,当我使用自定义WSDL强制https但JBoss配置为重写它时)。 我正在使用的JBossWS版本是与4.2.2捆绑在一起的版本,根据这个版本是2.0.1 编辑:关于重写 ,这确实是尝试过。 这是我发现的。 我可以让它重写主机(或不需要)和端口,但仅限于已识别的协议。 因此,为了让它发出https,我必须将bean的传输保证配置为CONFIDENTIAL,并在JBoss服务器上启用https,然后所有请求都被重定向到JBoss中的https。 我没有测试这是否适用于mod_jk(如果需要CONFIDENTIAL,AJP协议是否仍然有效,如果请求来自AJP,WSDL会获得正确的协议吗?我没有测试它),但是这样做具有相同的净效果 – 请求必须超过https。 没有办法让请求通过http或AJP进入,然后让它发出一个soap:地址作为https,特别是基于每个服务器配置(在QA和dev,http,但在生产https中,即使ssl被Apache终止。 使用自定义WSDL让我更接近,因为请求是在HTTP上进行的,但soap:地址表示https。 完美的生产(使用重写function将端口推送到443而不是8443),但对于QA无用(我不关心开发,因为开发版可能会有所不同,如果需要可以创建一个不同的jar,但我’如果我可以避免它,我对QA和具有不同构建过程的制作不满意。

如何在Wildfly / Jboss中部署耳朵时防止HTTP 404

我们使用WildFly 10作为我们的应用程序服务器并通过Docker进行部署(在WF中部署是普通的热部署)。 我们没有使用WildFly的集群机制,而只是在前面安装了负载平衡器(HAProxys)。 问题是WF在EAR部署仍在进行时打开其HTTP端口。 这(当然?)会导致HTTP 404错误,我们不想在LB中专门处理这些错误。 这可能会导致漏报…… 有没有办法在EAR成功启动后才允许HTTP连接? 或者可以替换“404因为没有在这里部署” – 错误与“503服务不可用”? 这样可以更好地表达问题并且易于外部处理……

什么是在我的部署中设置Cache-Control no-cache,no-store?

我有一个问题,我的应用程序部署总是返回响应标头: Cache-Control: no-cache Cache-Control: no-store Expires:Thu, 01 Jan 1970 00:00:00 GMT Pragma:no-cache 我正在使用: 春季3.1.2.RELEASE Primefaces JSF 3.4.1 Spring Webflow 2.3.0.RELEASE JBoss AS 7.0.1 我在应用程序方面尝试了几乎所有我能找到的解决方案: 配置WebContentInterceptor(试过它的各种排列) 开箱即用的缓存控制头filter? 编写自定义拦截器,添加不同的Cache-Control标头(使用Cache-Control测试:私有) 编写添加HTTP响应参数的客户filter。 使用Cache-Control配置它:private作为web.xml中的init-params 使用context.xml文件(在META-INF /和WEB-INF /中都尝试过)来禁用JBoss / Tomcat中的Cache-Control http://daveharris.wordpress.com/2007/07/09/how-to-配置高速缓存控制function于tomcat的/ 在所有上述情况中,响应头从未结束不同,始终是no-cache,no-store,1970 expires,pragma:no-cache 我的想法已经用完了,有没有人知道在我的响应中设置这些标题是什么,所以我可以针对相应的部署组件来解决这个问题?

JBoss 7未通过Java EE6认证

我真的很想知道这实际意味着什么? 我可以在开发中使用JBoss 7,还可以在生产中使用所有EE 6function(我需要JMS,EJB 3.1,JSF 2.1,CDI ……)或者我必须等待JBoss 7的更高版本? 如果没有,那么选项是什么,因为JBoss 6.x仅通过了Web Profile认证,“仅Web Profile认证”的解释是什么? 谢谢