• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Liutauras Vilda
  • Jeanne Boyarsky
  • paul wheaton
Sheriffs:
  • Ron McLeod
  • Devaka Cooray
  • Henry Wong
Saloon Keepers:
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Frits Walraven

asix2 client and windows based webservice interaction for unicode data

 
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi ,

I’ve got an application which is deployed on Tomcat 6.0.29. I’ve created and deployed a webservice on IIS Web Service. The Web Method in this Webservice is used to get the file metadata (last_modified , last_accessed, last_created) from the Windows filesystem. The axis2 client is in java (jdk 1.6). If the filename path is in English then everything is OK. But, if one of the path component is in non-English(Chinese) then I get the following exception



Caused by: org.apache.axis2.AxisFault: Connection reset; nested exception is:

java.net.SocketException: Connection reset

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:344)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:204)

... 24 more

Caused by: java.net.SocketException: Connection reset

at java.net.SocketInputStream.read(SocketInputStream.java:168)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

at java.io.BufferedInputStream.read(BufferedInputStream.java:237)

at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)

at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)

at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)

at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)

at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)

at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)

at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)

at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)

at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)

at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:541)

at org.apache.axis2.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:119)

at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:335)

... 25 more





The code in java looks like :





String xmlFile;

try {

FileAttribServiceStub stub = new FileAttribServiceStub();

FileAttribServiceStub.GetFileProperties request = new FileAttribServiceStub.GetFileProperties();

byte[] b = file.getCanonicalPath().getBytes();

String path = new String(b,"UTF-8");

//request.setFileName(file.getCanonicalPath());

request.setFileName(path);

// send and get the response

FileAttribServiceStub.GetFilePropertiesResponse response = stub //IT THROWS AN EXCEPTION HERE

.GetFileProperties(request);



String fileAttribXML = response.getGetFilePropertiesResult();



xmlFile = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";

xmlFile = xmlFile + "\n"

+ "<string xmlns=\"http://www.digitalmountain.com/webservices/\">";

xmlFile = xmlFile + "\n" + fileAttribXML;

xmlFile = xmlFile + "\n" + "</string>";





The Webservice code in .NET is :

sing System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Web;

using System.Web.Services;

using System.Text;

using System.IO;



namespace WSFileProperties

{

/// <summary>

/// Summary description for Service1.

/// </summary>

///

[WebService(Namespace="http://www.digitalmountain.com/webservices/")]

public class FileAttribService : System.Web.Services.WebService

{

public FileAttribService()

{

//CODEGEN: This call is required by the ASP.NET Web Services Designer

InitializeComponent();

}



#region Component Designer generated code



//Required by the Web Services Designer

private IContainer components = null;



/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

}



/// <summary>

/// Clean up any resources being used.

/// </summary>

protected override void Dispose( bool disposing )

{

if(disposing && components != null)

{

components.Dispose();

}

base.Dispose(disposing);

}



#endregion



// WEB SERVICE EXAMPLE

// The HelloWorld() example service returns the string Hello World

// To build, uncomment the following lines then save and build the project

// To test this web service, press F5



// [WebMethod]

// public string HelloWorld()

// {

// return "Hello World";

// }

[WebMethod]

public string GetFileProperties(string fileName)

{

StringBuilder sb = new StringBuilder();

if (Directory.Exists(fileName))

{

DateTime lstWriteTime = Directory.GetLastWriteTime(fileName);



sb.Append("<FileName name=" +"\"" + fileName + "\"" + ">");

sb.Append("<Created>" + Directory.GetCreationTime(fileName).ToString("u") + "</Created>");

sb.Append("<Modified>" + Directory.GetLastWriteTime(fileName).ToString("u") + "</Modified>");

sb.Append("<Accessed>" + Directory.GetLastAccessTime(fileName).ToString("u") + "</Accessed>");

sb.Append("</FileName>");



return sb.ToString();

}

if (File.Exists(fileName))

{

FileInfo fi = new FileInfo(fileName);

sb.Append("<FileName name=" +"\"" + fileName + "\"" + ">");

sb.Append("<Created>" + fi.CreationTime.ToString("u") + "</Created>");

sb.Append("<Modified>" + fi.LastWriteTime.ToString("u") + "</Modified>");

sb.Append("<Accessed>" + fi.LastAccessTime.ToString("u") + "</Accessed>");

sb.Append("</FileName>");



return sb.ToString();

}

if (!File.Exists(fileName) || Directory.Exists(fileName))

{

sb.Append("<FileName name=" +"\"" + fileName + "\"" + ">");

sb.Append("<Created>" + "null" + "</Created>");

sb.Append("<Modified>" + "null" + "</Modified>");

sb.Append("<Accessed>" + "null" + "</Accessed>");

sb.Append("</FileName>");



return sb.ToString();

}

return sb.ToString();

}



}







}





I’ve already installed the language path on my XP box. How should I go on resolving this.



Thanks,

Tarun


 
Don't sweat petty things, or pet sweaty things. But cuddle this tiny ad:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic