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

标签 java web-services file soap

我想用两种方法在java中创建一个web服务

1) 通过返回本地 URL 将文件从 Internet 传输到本地文件服务器

2) 通过获取 url 从同一服务器检索文件

注意:它应该适用于所有格式

必须使用 Java Web 服务..

任何类型:字节数组、十六进制或 MIME 类型传输都可以

附件大小为4mb..

我无法直接连接到数据库,因为应用程序部署在 DMZ 上,我可以连接到 Intranet 中的文件服务器的唯一方法是使用 Web 服务。

与文件服务器的连接已经完成..

最佳答案

既然您已经用soap 标记了这个问题,我将假设您需要一个 Java 中的 SOAP 网络服务。这也使得 JAX-WS (用于 XML Web 服务的 Java API)库的自然选择。 Java(TM) Web Services Tutorial将更详细地介绍您的问题。

现在您需要实现获取图像和返回 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;
    }
}

您可能还需要设置一些额外的配置,如 Deploying 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 网络服务器(例如 Tomcat)。

关于将文件传输到本地系统的 Java Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810746/

相关文章:

java - Eclipse - 使用父项目资源文件夹时的 Maven 警告

java - 使用 JVM SNMP 功能的读写访问可以做什么?

java - 如何在java中使用另一个包中的类?

java - 是否可以在 Android 设备上运行 Tomcat 服务器和一些 Web 应用程序? (即平板电脑)

C 忽略一些行,然后打印其余行

windows - 在 Windows 中创建文件夹最新文件的快捷方式

java - 在JSP中使用jquery ajax没有调用Servlet?

c# - 在客户端拦截来自和发往 Web 服务的 SOAP 消息

web-services - 让 ColdFusion 调用的 Web 服务与 JavaLoader 加载的对象一起工作

python - 从python中的文件中读取逗号分隔的元组