[英]Java web service to transfer file to Local system
我想用两种方法在java中创建一个Web服务
1)通过返回本地URL将文件从Internet传输到本地文件服务器
2)通过获取url从同一服务器检索文件
注意:它应该适用于所有格式
它必须使用Java Web服务..
任何类型:字节数组,十六进制或MIME类型传输都可以
附件的大小是4mb ..
我无法直接连接到数据库,因为应用程序部署在DMZ上,我可以通过Web服务连接到Intranet中文件服务器的唯一方法。
已完成与文件服务器的连接..
既然你用soap
标记了这个问题,我将假设你想要一个Java的SOAP Web服务。 这也使JAX-WS (XML Web Services的Java API)成为库使用的自然选择。 Java(TM)Web服务教程将更详细地介绍您的问题。
现在,您将需要实现逻辑以获取图像并返回URL,并获取URL并返回图像。
@WebService
public class MyJavaWebService {
@WebMethod
public String takeImage(byte[] image, String imageName) {
//You'll need to write a method to save the image to the server.
//How you actually implement this method is up to you. You could
//just open a FileOutputStream and write the image to a file on your
//local server.
this.saveImage(image, imageName);
//Here is where you come up with your URL for the image.
return this.computeURLForImage(imageName);
}
@WebMethod
public byte[] getImage(String url) {
final byte[] loadedImage = this.getImage(url);
return loadedImage;
}
}
您还可能需要设置一些其他配置,如部署Metro Endpoint中所述 。 本文的要点是您需要将sun-jaxws.xml
文件添加到表单的WEB-INF/
文件夹中
<endpoints
xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint
name="MyJavaWebService"
implementation="com.mycompany.MyJavaWebService"
url-pattern="/MyJavaWebService"/>
</endpoints>
并且还将一些JAX-WS内容添加到您的web.xml
文件中,如下所示:
<web-app>
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>MyJavaWebServiceServlet</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyJavaWebServiceServlet</servlet-name>
<url-pattern>/MyJavaWebService</url-pattern>
</servlet-mapping>
</web-app>
最后,将所有内容打包到.war文件中并将其部署到Java Web服务器(例如Tomcat)。
类似的情况: 是这个 ,他已经解释了使用短代码
如果您的主要问题是在java中找到通过Web服务轻松进行文件传输的技巧,我建议使用Hessian服务,在Hessian上讨论SO上的大型二进制数据(java)帖子。 这里的链接是一个实现一种文件传输的例子。
如果您不想过多地了解Web服务本身的逻辑,那么Hessian是一个很好的解决方案。 快速查看一个Hessian代码,你甚至不会认识到你正在使用它。 它是如此轻量级的解决方案。
Stefan有一个解决方案,您可以在Web服务逻辑中获得相当多的内容,因此您需要具备多高的抽象级别。 如果这项任务的目的是展示如何使用Web服务,而不只是让它工作,那么Stefan就有了答案。
关于文件上传等,您想从Internet保存文件。 看看: 如何使用Java从Internet下载和保存文件? 。 这使用纯Java,在我的理解中,不需要任何Web服务来完成给定的任务,但是如果你将这两者结合起来,你会得到一些非常容易的东西!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.