server代码 public DataHandler downFile(String fileName) {

File file=new File("E://",fileName);
System.out.println("文件的大小为:"+file.length());
DataHandler dh=new DataHandler(new FileDataSource(file));
return dh;
} public String uploadFile(DataHandler dh, String fileName) {

long startTime=System.currentTimeMillis();
File file=new File("E://",fileName);
try {
file.createNewFile();
InputStream in= dh.getInputStream();
FileOutputStream out=new FileOutputStream(file);
byte[] buff=new byte[1024*1024];
int len=-1;
while(-1!=(len=in.read(buff,0,buff.length))){
out.write(buff,0,len);
}
in.close();
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
long endTime=System.currentTimeMillis();
System.out.println("总共用时:"+(endTime-startTime)/1000+"秒");
return "success";
}
client端代码
Service serviceModle = new ObjectServiceFactory().create(MyFile.class,
"FileService", "http://service.file.org/FileService", null); MyFile service = null;
try {
service = (MyFile) new XFireProxyFactory().create(serviceModle,
"http://192.168.3.109:8080/MyFile/services/FileService");
Client client = Client.getInstance(service);
client.setProperty("mtom-enabled", "true");
client.setProperty(HttpTransport.CHUNKING_ENABLED, "true");
} catch (MalformedURLException e) {
e.printStackTrace();
}
long startTime = System.currentTimeMillis();
String fileName = "b.txt";
File file = new File("E://", fileName);
DataHandler dh = new DataHandler(new FileDataSource(file));
System.out.println("ssssss=="+service.uploadFile(dh, fileName));
long endTime = System.currentTimeMillis();
System.out.println("time: " + (endTime - startTime) + " s");

// 文件下载
File file1 = new File("F://", fileName);
DataHandler dhl = service.downFile(fileName);
try {
file1.createNewFile();
InputStream in = dhl.getInputStream();
FileOutputStream out = new FileOutputStream(file1);
byte[] buff = new byte[1024 * 1024];
int len = -1;
while (-1 != (len = in.read(buff, 0, buff.length))) {
out.write(buff, 0, len);
}
in.close();
out.flush();
out.close();
System.out.println("down over");
} catch (IOException e) {
e.printStackTrace();
} }
web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping><filter>  
    <filter-name>CompressingFilter</filter-name>  
    <filter-class>  
        com.planetj.servlet.filter.compression.CompressingFilter  
    </filter-class>  
    <init-param>  
        <param-name>debug</param-name>  
        <param-value>false</param-value>  
    </init-param>  
    <init-param>  
        <param-name>statsEnabled</param-name>  
        <param-value>true</param-value>  
    </init-param>  
</filter>  
<filter-mapping>  
    <filter-name>CompressingFilter</filter-name>  
    <url-pattern>/services/*</url-pattern>  
</filter-mapping>  
</web-app>
service.xml代码:          <service>
<name>FileService</name>
<serviceClass>org.file.service.MyFile</serviceClass>
<implementationClass>
org.file.service.MyFileImpl
</implementationClass>
<properties>
<property key="mtom-enabled">true</property>
</properties>
</service>启动的在本地测试没问题,如果本机跑server端 。另外一个机器跑客户端访问的话,就是空的
错误代码:
Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException
org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException
at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31)
at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Client.onReceive(Client.java:406)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy0.uploadFile(Unknown Source)请大牛解答哈!