标签: jboss7.x

接收SSLHandshakeException:handshake_failure,尽管我的客户端忽略所有证书

我有一个Java程序,使用SSL/TLS连接到Web服务器,并通过该连接发送各种HTTP请求.服务器是localhost并使用自签名证书,但我的代码使用自定义TrustManagers,并忽略无效证书.它一直运作到现在.

服务器上的唯一区别是它曾用于运行jboss 6并且现在正在运行jboss 7.我不确定这是否是配置问题,或者我的代码是否有问题,但如果我的代码有问题,我会得到相同的错误我尝试使用其他基于Java的程序(如WebScarab或ZAP)进行连接.

在任何情况下,我可以对我的代码做些什么来解决这个问题?这是完整的错误:

Received fatal alert: handshake_failure
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

以下是失败前的调试消息:

main, WRITE: TLSv1 Handshake, length = 75
main, WRITE: SSLv2 client hello message, length = 101
main, READ: TLSv1 Alert, length = 2
main, RECV TLSv1 ALERT: fatal, handshake_failure
Run Code Online (Sandbox Code Playgroud)

java ssl jboss7.x

19
推荐指数
1
解决办法
9万
查看次数

如何以编程方式检索持久性单元使用的数据源

...没有实际阅读和解析 persistence.xml

我可以EntityManager使用它的工厂属性检索一个持久性单元的名称.我可以使用jboss-as-controller-client检索可用的数据源.但我发现没有API会给我一个特定的数据源EntityManager.

一个String一个名字就足够了.

谢谢

我在JBoss 7.1.1.Final上使用Hibernate 4.0.1.Final而不是JPA 2.

编辑:我想尽可能避免从JPA转向Hibernate API.

编辑:奥古斯托的解决方案工作,我有一些关于细节的注释:EM的铸造因为ClassCastException:( org.jboss.as.jpa.container.TransactionScopedEntityManager cannot be cast to org.hibernate.ejb.EntityManagerImpl)而无效,但它适用于检索到的工厂.所以我省略了第1步.

我也找不到从实例中检索数据源名称的方法.所以我不得不满足于目录名称:connectionProvider.getConnection().getCatalog();

hibernate jpa java-ee jpa-2.0 jboss7.x

19
推荐指数
4
解决办法
4万
查看次数

将JSON REST Web服务中的日期序列化为ISO-8601字符串

我有一个使用JBoss AS 7.1的JAX-RS应用程序,以及包含Dates(java.util.Date)的POST/GET JSON和XML对象:

@XmlRootElement
@XmlAccessorType(XmlAccessField.FIELD)
public class MyObject implements Serializable
{
    @XmlSchemaType(name = "dateTime")
    private Date date;
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我在get方法上使用@Produce("application/xml")时,objets被序列化为XML并且日期被转换为ISO-8601字符串(例如"2012-12-10T14:50:12.123 + 02:00") ).

但是,如果我在get方法上使用@Produce("application/json"),则JSON对象中的日期是时间戳(例如"1355147452530")而不是ISO-8601字符串.

如何配置JAX-RS实现(RESTEasy)以JSON格式将日期序列化为ISO-8601字符串而不是时间戳?

谢谢您的回答.

注意:我还尝试使用自定义JAX-RS提供程序为日期执行JSON序列化

@Provider
@Produces(MediaType.APPLICATION_JSON)
public class CustomJsonDateProvider implements MessageBodyWriter<Date>
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

这个提供程序似乎是由RESTeasy在JBoss初创公司注册的:

[org.jboss.jaxrs] Adding JAX-RS provider classes: package.CustomJsonDateProvider
...
[org.jboss.resteasy.cdi.CdiInjectorFactory] No CDI beans found for class package.CustomJsonDateProvider. Using default ConstructorInjector.
Run Code Online (Sandbox Code Playgroud)

但它永远不会被使用!

json jax-rs resteasy jboss7.x

19
推荐指数
1
解决办法
2万
查看次数

IntelliJ Artifact具有无效扩展名

我在jboss上部署工件时遇到了一个奇怪的问题.在IntelliJ中生成默认的spring-mvc项目之后,我尝试运行它,但IntelliJ在"运行/调试配置"中显示一条消息,表明我的"Artifact XYZ:war爆炸的扩展名无效".

我在stackoverflow"更改扩展"上找到了建议,但我有正确的.war扩展名.

怎么了?

java spring-mvc intellij-idea jboss7.x

19
推荐指数
1
解决办法
1万
查看次数

在配置的阻塞超时内没有可用的托管连接(JBoss 7和Postgres)

我定期得到错误:

错误JDBCExceptionReporter - > javax.resource.ResourceException:IJ000453:无法获取java的托管连接:jboss/datasources/myDB 08:12:05,928 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[ default-host].[/ mySoftware].[jsp]](ajp - xx.255.0.yyy-8109-21)Servlet jsp的Servlet.service()抛出异常:javax.resource.ResourceException:IJ000655:没有托管连接在org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:377)等配置的阻塞超时(30000 [ms])内可用.

.

所以,我有下一个数据源配置.在JBoss AS上:

<datasource jta="true" jndi-name="java:jboss/datasources/myDB" pool-name="ssbs-pssbs" enabled="true" use-ccm="true">
                    <connection-url>jdbc:postgresql://xx.255.0.yyy/myDatabase</connection-url>
                    <driver-class>org.postgresql.Driver</driver-class>
                    <driver>postgresql-jdbc4</driver>
                    <pool>
                        <min-pool-size>30</min-pool-size>
                        <max-pool-size>150</max-pool-size>
                        <prefill>true</prefill>
                        <use-strict-min>false</use-strict-min>
                        <flush-strategy>FailingConnectionOnly</flush-strategy>
                    </pool>
                    <security>
                        <user-name>tick</user-name>
                        <password>tack</password>
                    </security>
                    <validation>
                        <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <timeout>
                        <blocking-timeout-millis>30000</blocking-timeout-millis>
                        <idle-timeout-minutes>5</idle-timeout-minutes>
                    </timeout>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>
Run Code Online (Sandbox Code Playgroud)

在我的Postgres服务器上我允许500上的max_connection.为什么我得到这个例外?

database datasource postgresql-9.1 jboss7.x

19
推荐指数
1
解决办法
3万
查看次数

使用脚本重启jboss最干净的方法

我正在使用"./standalone.sh -c standalone-full.xml"来启动JBOSS.在这种情况下,重启jboss的最简洁方法是什么?您可以分享的任何脚本?

linux jboss jboss7.x ubuntu-12.04

18
推荐指数
2
解决办法
3万
查看次数

Jboss服务器错误:无法启动服务jboss.deployment.unit."jbpm-console.war"

启动jboss服务器时,它会出现错误无法启动服务jboss.deployment.unit."jbpm-console.war".但是,当我使用start.demo运行jbpm6演示时,它的工作正常.

23:43:41,042 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.unit."jbpm-console.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."jbpm-console.war".PARSE: Failed to process phase PARSE of deployment "jbpm-console.war"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_09]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_09]
        at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_09]
Caused by: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.ejb.default-resource-adapter-name-service not found
        at org.jboss.msc.service.ServiceContainerImpl.getRequiredService(ServiceContainerImpl.java:447) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
        at org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.getDefaultResourceAdapterName(MessageDrivenComponentDescriptionFactory.java:273)
        at org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.processMessageDrivenBeanMetaData(MessageDrivenComponentDescriptionFactory.java:244)
        at org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.processBeanMetaData(MessageDrivenComponentDescriptionFactory.java:88)
        at org.jboss.as.ejb3.deployment.processors.AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.processBeanMetaData(AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.java:65)
        at org.jboss.as.ejb3.deployment.processors.AbstractDeploymentUnitProcessor.processDeploymentDescriptor(AbstractDeploymentUnitProcessor.java:143)
        at org.jboss.as.ejb3.deployment.processors.AbstractDeploymentUnitProcessor.deploy(AbstractDeploymentUnitProcessor.java:84)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
        ... 5 more

23:43:41,104 INFO  [org.jboss.as] (MSC service thread 1-6) …
Run Code Online (Sandbox Code Playgroud)

java jboss jbpm jboss7.x

18
推荐指数
3
解决办法
9万
查看次数

带有额外列的JPA 2.0多对多

我试图在JPA 2.0(JBoss 7.1.1)中创建一个ManyToMany关系,并在关系中添加一个额外的列(粗体,下面),例如:

Employer           EmployerDeliveryAgent             DeliveryAgent
(id,...)   (employer_id, deliveryAgent_id, **ref**)  (id,...)
Run Code Online (Sandbox Code Playgroud)

我不希望有重复的属性,所以我想应用http://giannigar.wordpress.com/2009/09/04/mapping-a-many-to-many-join-table中提供的第二个解决方案.-with-column-using-jpa /.但我不能让它工作,我得到几个错误,如:

  1. 嵌入式ID类不应包含关系映射(实际上规范是这样说的);
  2. 在属性'employerDeliveryAgent'中,"映射的"值'pk.deliveryAgent'无法解析为目标实体上的属性;
  3. 在属性'employerDeliveryAgent'中,"映射的"值'pk.employer'无法解析为目标实体上的属性;
  4. 持久类型的覆盖属性"pk.deliveryAgent"无法解析;
  5. 持久性类型的覆盖属性"pk.employer"无法解析;

该链接上的许多人说它工作正常,所以我想在我的环境中有些不同,可能是JPA或Hibernate版本.所以我的问题是:如何使用JPA 2.0(Jboss 7.1.1 /使用Hibernate作为JPA实现)实现这样的场景?并补充这个问题:我应该避免使用复合键,而是使用普通生成的id和唯一约束吗?

提前致谢.

Obs.:我没有在这里复制我的源代码,因为它本质上是上面链接中的一个副本,只是具有不同的类和属性名称,所以我想这没有必要.

orm hibernate java-ee jpa-2.0 jboss7.x

18
推荐指数
3
解决办法
3万
查看次数

JBoss AS 7.x和Glassfish 3.x的比较?

我想知道是否存在(大多数)客观比较JBoss AS 7Glassfish 3.x

我不关心标准或其实现方面的任何差异,我更多地考虑了启动时间,故障转移,可伸缩性,性能,内存占用,已知问题,管理,安全性,集群等.

真实世界的例子和经验非常受欢迎!

glassfish-3 jboss7.x

17
推荐指数
4
解决办法
2万
查看次数

无法使@ManyToOne关系成为可空

我有一个多对一的关系,我想要可以为空:

@ManyToOne(optional = true)
@JoinColumn(name = "customer_id", nullable = true)
private Customer customer;
Run Code Online (Sandbox Code Playgroud)

不幸的是,JPA将我的数据库中的列设置为NOT NULL.有谁能解释一下?有没有办法让它发挥作用?请注意,我使用JBoss 7,JPA 2.0和Hibernate作为持久性提供程序和PostgreSQL 9.1数据库.

编辑:

我找到了问题的原因.显然,这是由于我在引用实体中定义主键的方式Customer:

@Entity
@Table
public class Customer { 
    @Id
    @GeneratedValue
    @Column(columnDefinition="serial")
    private int id;
}
Run Code Online (Sandbox Code Playgroud)

看来,使用@Column(columnDefinition="serial")主键会自动将引用它的外键设置到NOT NULL数据库中.将列类型指定为时,这确实是预期的行为serial吗?在这种情况下,是否有解决方案来启用可为空的外键?

先感谢您.

nullable many-to-one jpa-2.0 postgresql-9.1 jboss7.x

17
推荐指数
2
解决办法
3万
查看次数