繁体   English   中英

Java Web服务将文件传输到本地系统

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM