JAVA调用webservices服务

高长凯 2013-04-07 11:41:41
出现错误,不知道是客户端有些属性配置不对还是什么,附wsdl文件,请指正。。。
代码如下:
String requestXML = "<InpatientRegistration_Request><head><StandardVersionCode>H005</StandardVersionCode><MaxRecord>1</MaxRecord><TransRefGUID>20130308100400000001</TransRefGUID><TransactionCode>H005</TransactionCode><defaultCurrencyCode>01</defaultCurrencyCode><MessageId>0020130308100400000001</MessageId><CorrelationId>1120130308100400000001</CorrelationId><MessageDateTime>2013-03-08 10:04:00</MessageDateTime><SenderCode>1001</SenderCode><SenderName>浑南新区医院</SenderName><SenderAddress>浑南新区</SenderAddress><ReceiverCode>9001</ReceiverCode><ReceiverName>人保青岛分公司</ReceiverName><ReceiverAddress>青岛市区</ReceiverAddress><IntermediaryCode>3001</IntermediaryCode><IntermediaryrName>第三方</IntermediaryrName><IntermediaryAddress>第三方公司</IntermediaryAddress></head><@xml:lang>CHINEAE SIMP</@xml:lang><body><StaffInformation><Year>2013</Year><FamilyCode>2101020008</FamilyCode><HouseholdCode>5460</HouseholdCode><HouseholdAttribute>1</HouseholdAttribute><HHouseholdID>210102195006011887</HHouseholdID><HHouseholdName>黑土</HHouseholdName><Town_or_Village_Num>牤牛屯</Town_or_Village_Num><GroupNum>0101</GroupNum><FamilyAmount>2</FamilyAmount><AgriculturalAmount>2</AgriculturalAmount><ZipCode>100017</ZipCode><HomeAddress>牤牛屯</HomeAddress><Telephone>5531220</Telephone><Name>白云</Name><Gender>2</Gender><ID>210102195104011888</ID><Birthday>1951-04-01</Birthday><FamilyRelations>夫妻</FamilyRelations><Nation>中华人民共和国</Nation><MaritalStatus>2</MaritalStatus><Birthplace>牤牛屯</Birthplace><HealthState>30</HealthState><WorkUnit>无</WorkUnit><NrcID>1000172003000002</NrcID><PersonalID>1000172003000002</PersonalID><NewBorn_Flag>0</NewBorn_Flag><DistrictCode>100017</DistrictCode><DistrictName>莲花乡牤牛屯</DistrictName>	</StaffInformation><Registration><HospitalCode>2001</HospitalCode><MedicalCategory>21</MedicalCategory><InpatientDate>2013-03-04</InpatientDate><InpatientDiagnosisDiseaseCode>BAC0088</InpatientDiagnosisDiseaseCode><InpatientDiagnosisDiseaseName>胃疼</InpatientDiagnosisDiseaseName><DepartmentCode>035</DepartmentCode><DepartmentName>消化科</DepartmentName><SickbedNum>胃疼</SickbedNum><DoctorCode>0001</DoctorCode><DoctorName>范厨师</DoctorName><ClinicSerialNum>20130304000007</ClinicSerialNum><Operator>刘经理</Operator><Remark>备注</Remark><ReserveField1>预留字段1</ReserveField1><ReserveField2>预留字段2</ReserveField2><ReserveField3>预留字段3</ReserveField3></Registration></body><TransRefGUID>20130308100400000011</TransRefGUID></InpatientRegistration_Request>";

//String requestXML = "<CatalogDownload_Request><head><TransRefGUID><![CDATA[]]></TransRefGUID><TransactionCode><![CDATA[H001]]></TransactionCode><MessageId><![CDATA[]]></MessageId><CorrelationId><![CDATA[]]></CorrelationId><SenderCode><![CDATA[]]></SenderCode><ReceiverCode><![CDATA[]]></ReceiverCode></head><Begin_Time><![CDATA[]]></Begin_Time><Item_Code><![CDATA[]]></Item_Code><Current_Page_Number><![CDATA[]]></Current_Page_Number></CatalogDownload_Request>";


//URL url = new URL("http://localhost:8080/xnhyl/services/aaa");
URL url = new URL("http://46.1.200.136:7001/eapdomain/services/WSInterfacePICC?wsdl");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);

//测试代码
conn.setRequestProperty("Content-Length", Integer.toString(requestXML.length()));
//conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
conn.setRequestProperty("Content-Type","application/soap+xml; charset=utf-8");

conn.setRequestProperty("SOAPAction", "http://46.1.200.136:7001/eapdomain/transBusinessForPICC");
conn.setRequestProperty("HOST", "http://46.1.200.136");

conn.setRequestProperty("charset", "UTF-8");
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");


//向服务器端传XML数据
OutputStream os = conn.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
osw.write(requestXML);
osw.flush();
osw.close();

InputStream is = conn.getInputStream();
XMLReaderFactory readerFactory = XMLReaderFactory.newInstance();
ResponseEntity responseEntity = (ResponseEntity)readerFactory.getSOAPReturnValue(is, true);
System.out.println("success:" + responseEntity.getSuccess());
System.out.println("result:" + new String(Base64Util.decode(responseEntity.getResult()), "UTF-8"));



报错如下:
java.io.IOException: Server returned HTTP response code: 500 for URL: http://46.1.200.136:7001/eapdomain/services/WSInterfacePICC?wsdl
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)
at com.zljy.webservice.action.TestWSAction.main(TestWSAction.java:107)


附wsdl如下:
<?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions targetNamespace="http://localhost:8080/eapdomain/services/WSInterfacePICC" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/eapdomain/services/WSInterfacePICC" xmlns:intf="http://localhost:8080/eapdomain/services/WSInterfacePICC" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!--
WSDL created by Apache Axis version: #axisVersion#
Built on #today#

-->
- <wsdl:message name="transBusinessForPICCResponse">
<wsdl:part name="transBusinessForPICCReturn" type="xsd:string" />
</wsdl:message>
- <wsdl:message name="transBusinessForPICCRequest">
<wsdl:part name="XMLString" type="xsd:string" />
</wsdl:message>
- <wsdl:portType name="WSInterfacePiccApplogicImpl">
- <wsdl:operation name="transBusinessForPICC" parameterOrder="XMLString">
<wsdl:input message="impl:transBusinessForPICCRequest" name="transBusinessForPICCRequest" />
<wsdl:output message="impl:transBusinessForPICCResponse" name="transBusinessForPICCResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="WSInterfacePICCSoapBinding" type="impl:WSInterfacePiccApplogicImpl">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="transBusinessForPICC">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="transBusinessForPICCRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://impl.applogic.baseinfo.domain.picc.simis.si.neusoft.com" use="encoded" />
</wsdl:input>
- <wsdl:output name="transBusinessForPICCResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/eapdomain/services/WSInterfacePICC" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="WSInterfacePiccApplogicImplService">
- <wsdl:port binding="impl:WSInterfacePICCSoapBinding" name="WSInterfacePICC">
<wsdlsoap:address location="http://localhost:8080/eapdomain/services/WSInterfacePICC" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
...全文
110 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧