当前位置: 首页 > 知识库问答 >
问题:

打开JDK 7和Oracle JDK 7 Soap客户端

松铭
2023-03-14

我使用cxf开发了一个java soap客户端。这个应用程序在mac上运行得很好,我在mac上运行它时附带了jdk v6。例如,我创建的服务将图像上传到magento安装,但这里我将介绍这个问题。

在Apache Cxf中,我转向了分块,以避免“严重”的xml请求。现在我体验到,由于开放的jdk,我的客户端应用程序无法在像ubuntu这样的linux发行版上运行。我在mac上通过安装openjdk 7和oracle jdk 7对此进行了测试,出现了相同的错误。

尽管如此,我还是放弃了对来自客户端的请求进行分块,因为请求在某个地方被分块,因此上载失败。

我读到这可能是openjdk和一些xml库的问题,但我找不到关于这个主题的任何真正准确甚至有用的信息。

也许你们中的某个人可以帮我。

提前谢谢。

这是请求和响应:


ID: 5
Address: http://dev.magento.com/index.php/api/v2_soap/index/
Encoding: UTF-8
Content-Type: text/xml
Headers: {Accept=[*/*],
SOAPAction=[""]}
Messages: Outbound Message (saved to tmp file):
Filename:
/var/folders/z6/91v2ntss00s1786v_1_5y2540000gn/T/cxf-tmp-636617/cos5007091721474555391tmp
(message truncated to 102400 bytes)

Payload:

    
        
            552f069112dde557bc577735fc4eb8bf
            5540
            
                
                    
                        /9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gODAK/9sAQwAGBAUGBQQ
--------------------------------------
14168 [main] INFO
org.apache.cxf.services.MagentoService.Mage_Api_Model_Server_Wsi_HandlerPort.Mage_Api_Model_Server_Wsi_HandlerPortType
- Inbound Message
----------------------------
ID: 5
Response-Code: 200
Encoding: UTF-8
Content-Type: text/xml; charset=UTF-8
Headers: {Cache-Control=[max-age=31536000], connection=[close],
Content-Length=[275], content-type=[text/xml; charset=UTF-8],
Date=[Fri, 17 Aug 2012 12:52:16 GMT], Expires=[Sat, 17 Aug 2013
12:52:16 GMT], Server=[Apache], Vary=[Accept-Encoding]}
Payload: 

    
        
            102
            Ungültiger Bildtyp.
        
    


--------------------------------------

这里有一个痕迹:


javax.xml.ws.soap.SOAPFaultException: unsupported imagetype
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
    at $Proxy28.catalogProductAttributeMediaCreate(Unknown Source)
    at at.myproject.soap.service.product.media.ProductAttributeMediaServiceImpl.create(ProductAttributeMediaServiceImpl.java:61)
    at at.myproject.magento.service.sync.product.ProductSyncServiceImpl.updateProduct(ProductSyncServiceImpl.java:275)
    at at.myproject.magento.service.sync.product.ProductSyncServiceImpl.updateProducts(ProductSyncServiceImpl.java:185)
    at at.myproject.magento.service.sync.product.ProductSyncServiceImpl.syncronize(ProductSyncServiceImpl.java:145)
    at at.myproject.magento.scheduler.jobs.ProductSyncJob.execute(ProductSyncJob.java:21)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
Caused by: org.apache.cxf.binding.soap.SoapFault: Ungültiger Bildtyp.
    at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
    at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
    at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
    at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
    at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
    at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:798)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1656)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1521)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1429)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:659)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:532)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
    ... 8 more

共有1个答案

阙弘博
2023-03-14

我可以通过将这些库添加到pom中来解决此问题,

    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-xjc</artifactId>
        <version>2.2.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.2.1</version>
    </dependency>

,在查阅Apache的CXF常见问题解答之后。

我使用OS X最新的jdk 6和新的openjdk7和oracle jdk7运行了集成测试。

 类似资料:
  • 打开客户端 /** * * @param {String} _url 户动客户端后打开的url 不传默认唤起客户端 * @param {String} _clinet 默认打开手淘,取值为"tmall"时打开手机天猫 * @example * Tida.openClient(); */ Tida.openClient( _url, _clinet );

  • 在Python中,我将“WebSockets”库用于websocket客户端。 问题是一旦收到响应,客户端websocket连接就会断开。我希望连接保持打开,以便以后可以发送和接收消息。 为了保持websocket打开并能够在以后发送和接收消息,我需要做哪些更改?

  • 自我介绍 项目基本没问 上来拷打C++ 问 虚函数 静态 内存越界 容器 崩溃原因 explicit等等 每一个知识点都纵向深挖 特别细特别细特别细 光背八股根本招架不住 问了四十分钟吧 几乎没有别的问题 几乎全是c++ 很崩溃啊 算法题 层序遍历 5.22二面 真么想到狗到二面 项目拷打无参考性 穿插少量cpp八股 算法题 ip地址 许愿三面

  • 我正在使用套接字开发一个简单的聊天应用程序。它是客户机-服务器驱动的。除了这个我找不到的bug,一切都很完美:如果我是第一个连接到服务器的客户机,我收到的每一条消息都会在屏幕上打印一次(就像它应该的那样)。然而,如果我是第二个连接的客户,我收到的每条消息都会打印两次,第三个客户会看到他的消息三次,以此类推 当我通过插座收到东西时,我像这样打印它: 因此,如果我收到用户“charles”发送的消息h

  • 我正在使用VLCJ在服务器和客户端之间进行音频流。服务器端全部设置为,一旦它运行,我就可以打开流,只需使用vlc本身,我就可以监听我在服务器上选择的任何文件。但是,在客户端,我正在执行以下操作: 但一点声音都没有。如果我在终端中运行,它会打开vlc,并播放服务器正在流式传输的音乐曲目,不会有任何问题。 最近,我发现问题出在路径上。通过使用显示它打开的是而不是直接从HTTP地址()打开的MRL。 在

  • 我对kryonet客户端断开有问题。有谁能帮我弄清楚这个问题的根源是什么吗? 利用kryonet库,客户端需要发送和接收KeepAlive数据包才能保持连接。客户端线程将自动处理此操作。但是如果我的客户端做了一个繁重的工作(注意:在另一个线程中),它似乎会阻止客户端线程做这件事。 问题出现在读取大的数据库表时,从表中选择一些列(每个Gega的大小)需要花费时间 不同的超时阈值 kryo 2.23和