标签: switchyard

远程SOAP Web服务不断断开连接

简短的介绍

我正在使用JBoss SwitchYard连接到安全的远程SOAP Web服务.发出请求后出于某种原因; 远程Web服务正在停止任何进一步的通信; 所以我没有收到回复.

我需要一个想法或解决方案,这可能是一个问题.

错误

引起:java.net.SocketException:SocketException调用https://**********.asmx:来自服务器的文件意外结束

说明和说明

  • 远程Web服务使用自签名证书; 我已将服务器证书导入到我的本地信任库+ +我有我的其他证书(在我的密钥库中)以向远程服务器标识自己.
  • 感谢-Djavax.net.debug =所有 SSL调试日志和Wireshark日志我知道客户端和服务器都成功进行了SSL握手,客户端已成功发送请求.
  • 服务器还使用IP过滤来允许直接通信,并且我的IP被列入白名单.
  • 如果我尝试通过SoapUI发送相同的XML请求,它工作正常,我收到响应.您应该考虑到SoapUI只使用密钥库; 它被设置为始终信任远程服务,因此不需要或使用信任库.
  • 现在来了有趣的部分.如果我使用Fiddler(免费的网络调试代理)作为我的JBoss SwitchYard和远程Web服务之间的"中间人" (看看发生了什么),突然一切正常.
  • 直接连接和使用Fiddler作为代理之间的唯一区别在于,在实际连接中使用Connection = Keep-Alive头参数,在Fiddler情况下,使用Proxy-Connection = Keep-Alive参数.我不知道还有其他重大区别.
  • 如果我在SoapUI中手动更改这些头参数,我仍然会收到成功的响应.只有当我缺少SOAPActionContent-Type头参数时,连接才会失败,但它们在每种情况下都存在(并且是相同的).
  • 当我通过Wireshark观察这种通信时,我只能看到远程服务器正在停止进一步的通信(当JBoss Switchyard应用程序直接与远程Web服务通信时).
  • 我无法访问远程日志,也无法获取远程日志.所以我在盲目工作.
  • 在每种情况下(有或没有Fiddler)我正在使用公司代理来访问远程Web服务.此代理不是问题,因为其他SwitchYard应用程序正常工作.

工具

  • JBoss EAP 6.4
  • JBoss SwitchYard 2.0.1.redhat-621159

java web-services fiddler jboss-eap-6 switchyard

15
推荐指数
2
解决办法
1684
查看次数

找不到元素“持久性”的声明

我有以下坚持

有一个代码片段:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="ProcedimientosAlmacenados">
    <jta-data-source>java:/jdbc/DesaAppDS</jta-data-source>
    <properties> 
        <property name="hibernate.show_sql" value="false" />
        <property name="hibernate.format_sql" value="true" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
        <property name="hibernate.hbm2ddl.auto" value="validate" />
        <property name="hibernate.ejb.entitymanager_factory_name" value="ProcedimientosAlmacenados" />
        <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
        <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="openjpa.TransactionMode" value="managed" />
        <property name="openjpa.ConnectionFactoryMode" value="managed" />
        <property name="openjpa.jdbc.DBDictionary" value="db2" />
        <property name="eclipselink.jdbc.batch-writing" value="JDBC"/>
    </properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

调用持久性跟随

EntityManagerFactory enfactory = Persistence.createEntityManagerFactory("ProcedimientosAlmacenados");
    EntityManager enmanager = enfactory.createEntityManager();
Run Code Online (Sandbox Code Playgroud)

我跳过以下错误

Caused by: javax.persistence.PersistenceException: Invalid persistence.xml.
Error parsing XML (line-1 : …
Run Code Online (Sandbox Code Playgroud)

java hibernate jta switchyard

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

标签 统计

java ×2

switchyard ×2

fiddler ×1

hibernate ×1

jboss-eap-6 ×1

jta ×1

web-services ×1