gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:53:07 26 4
gpt4 key购买 nike

我想用两种方法在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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com