2015-01-08 5 views
0

Java 1.4 웹 서비스를 사용하는 C# 응용 프로그램을 만들어야합니다. 이 웹 서비스에는 WSDL이 없으며 웹 서비스를 만들 수 없습니다.이 서비스를 사용해야합니다.웹 API를 사용하여 Java 웹 서비스 사용 (WSDL 사용 불가)

반환되는 내용 유형은 Content-Type : 임의의 경계가있는 multipart/form-data입니다. 피들러의 내용은 다음과 같습니다

HTTP/1.0 200 OK 
Content-Type: multipart/form-data; boundary=---------------------------MultiPartFormControl7d2fb2f20039a 

Servlet-Engine: Tomcat Web Server/3.2.3 (JSP 1.1; Servlet 2.2; Java 1.4.2_11; Linux 2.6.18-371.8.1.el5 i386; java.vendor=Sun Microsystems Inc.) 

-----------------------------MultiPartFormControl7d2fb2f20039a 
Content-Disposition: form-data; name="806307234.xml" filename="806307234.xml" 
Content-Type: application/octet-stream 

<*XML contents go here*>  
-----------------------------MultiPartFormControl7d2fb2f20039a 
Content-Disposition: form-data; name="806307873.jpg" filename="806307873.jpg" 
Content-Type: image/jpeg 

<*binary data goes here*>  
-----------------------------MultiPartFormControl7d2fb2f20039a 
Content-Disposition: form-data; name="806307876.jpg" filename="806307876.jpg" 
Content-Type: image/jpeg 

<*binary data goes her**>  
-----------------------------MultiPartFormControl7d2fb2f20039a 

.ReadAsMultipartAsync을() 나는 MultipartMemoryStreamProvider에 결과를 반환하려고 다음과 같은 오류가 발생하는 사용하기 :

< 오류 분석 MIME 다중 본체 부품을

Uri webServiceUri = new Uri(@"http://endpoint"); 

string document = @"Contains XML for SOAP call"; 

HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, webServiceUri); 
HttpContent stringContent = new StringContent(document, Encoding.UTF8, "text/xml"); 
requestMessage.Content = stringContent; 

HttpClient client = new HttpClient(); 
Task<HttpResponseMessage> httpRequest = client.SendAsync(requestMessage, 
HttpCompletionOption.ResponseHeadersRead, CancellationToken.None); 

HttpResponseMessage httpResponse = httpRequest.Result; 
HttpContent returnContent = httpResponse.Content; 

Task<MultipartMemoryStreamProvider> multiPartTask = returnContent.ReadAsMultipartAsync(); 
MultipartMemoryStreamProvider mpmsProvider = multiPartTask.Result; <*** ERROR OCCURS HERE ***> 

Stream multipartStream = mpmsProvider.GetStream(returnContent, returnContent.Headers); 
,536,913 : 데이터 세그먼트의 헤더 바이트 143 System.Byte는 [여기서>

내 코드이며

+0

, 실패 동일한 바이트 번호 및 코드에서 다른 히트 곡을 가지고, 내가 꽤 있어요 너와 나는 같은 서비스에 반대하고있다. 나는 무수한 사람들 사이에서 같은 문제를 겪고있다./ –

답변

0

브라우저에서 먼저 wsdl을 볼 수 있는지 확인하려면 먼저 브라우저에서 해당 서비스를 가리켜 야합니다.

http://YourLinuxBox:8080/SomeService.wsdl

또한 어떤 응용 프로그램 서버이 서비스에서 호스팅? 수코양이? JBoss? 예를 들어 바람둥이라면 logs 폴더 아래에 "catalina.out"을 실패하고 서비스가 제대로로드되었는지 확인하십시오.

https://gridwizard.wordpress.com/2014/12/26/java-ws-and-dotnet-interop-example/ https://gridwizard.wordpress.com/2014/12/28/install-tomcat-on-fedora-vm-for-msdev/ : 여기

C#을에서 자바-WS를 소비하는 방법을 톰캣/리눅스에 설치 자바-WS를, 그리고 리눅스에 익숙하지 않은 DOTNET 개발자, 특히에 표시하는 조각이다

+0

이 질문의 제목은 WSDL이 없다는 것을 분명히하고있다. – stieferj

+0

사과, 그게 네 문제인지 생각해. – Jaye

0

확장자가 ".jpg"이고 Content-Typeimage/jpeg 인 두 개의 이미지를 사용하고 있습니다. 이 SO answer을 기반으로 MIME 유형 image/jpgimage/jpeg은 동일하지 않습니다. 그래서 당신과 같이 image/jpg에 이미지의 콘텐츠 형식을 변경하려고 할 수 있습니다 :

Content-Type: multipart/form-data; boundary=---------------------------MultiPartFormControl7d2fb2f20039a 

Servlet-Engine: Tomcat Web Server/3.2.3 (JSP 1.1; Servlet 2.2; Java 1.4.2_11; Linux 2.6.18-371.8.1.el5 i386; java.vendor=Sun Microsystems Inc.) 

-----------------------------MultiPartFormControl7d2fb2f20039a 
Content-Disposition: form-data; name="806307234.xml" filename="806307234.xml" 
Content-Type: application/octet-stream 

<*XML contents go here*>  
-----------------------------MultiPartFormControl7d2fb2f20039a 
Content-Disposition: form-data; name="806307873.jpg" filename="806307873.jpg" 
Content-Type: image/jpg 

<*binary data goes here*>  
-----------------------------MultiPartFormControl7d2fb2f20039a 
Content-Disposition: form-data; name="806307876.jpg" filename="806307876.jpg" 
Content-Type: image/jpg 

<*binary data goes her**>  
-----------------------------MultiPartFormControl7d2fb2f20039a 
파일 이름을 바탕으로