使用Java中的Web服务(tomcat+ AXIS2),应用程序的根目录在哪里?

发布于 2024-11-08 22:36:41 字数 966 浏览 0 评论 0原文

我创建了一个将图像下载到本地网络服务器的函数。 当我像 Java 应用程序一样运行这个函数时,它工作得很好。但是当我尝试使用 AXIS2 制作的 Web 服务运行此方法时 ( http://localhost:8080 /axis2/services/adoroCinemaService2/downloadPhoto ),AXIS2 返回内部服务器错误。

它可能会发生,因为我在代码中使用了“根路径”。那么,我需要做什么来解决这个问题呢?我的服务的根源在哪里?我该如何设置这条路径?

    public void downloadPhoto() throws IOException{

    URL url = new URL("http://vamosla.mobi/img/bonde.png");
    String target = "vamosla.jpg";  

    HttpURLConnection c = (HttpURLConnection)url.openConnection();
    c.setRequestMethod("GET");
    c.setDoOutput(true);
    c.connect();

    FileOutputStream f = new FileOutputStream(new File(target));

     InputStream in = c.getInputStream();
        byte[] buffer = new byte[1024];
        int len1 = 0;
        while ( (len1 = in.read(buffer)) > 0 ) {
            f.write(buffer,0, len1);
        }

        f.close();
}

I create a function that downloads a image to my local web server.
When I run this function like a Java Application, it works fine. But when I try to run this method using the Web Service made by AXIS2 ( http://localhost:8080/axis2/services/adoroCinemaService2/downloadPhoto ), the AXIS2 returns Internal server error.

It happens probabily, because I use a "root path" in my code. So, what I need to do to solve this problem? Where is the root of my service? How can I setup this path?

    public void downloadPhoto() throws IOException{

    URL url = new URL("http://vamosla.mobi/img/bonde.png");
    String target = "vamosla.jpg";  

    HttpURLConnection c = (HttpURLConnection)url.openConnection();
    c.setRequestMethod("GET");
    c.setDoOutput(true);
    c.connect();

    FileOutputStream f = new FileOutputStream(new File(target));

     InputStream in = c.getInputStream();
        byte[] buffer = new byte[1024];
        int len1 = 0;
        while ( (len1 = in.read(buffer)) > 0 ) {
            f.write(buffer,0, len1);
        }

        f.close();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月依秋水 2024-11-15 22:36:41

嗯,当然有一些技巧可以用来确定代码当前执行的位置并从那里设置相对路径,但我认为这对您来说并不可靠。

因此,我建议您通过系统属性或通过从类路径加载的某些配置文件来配置“asset.path”之类的内容。

Hm, there are certainly some tricks available to work out where the code currently executes and setup relative paths from there, but i don't think that will work reliably for you.

Therefore, i suggest you configure something like an 'asset.path' either via system properties or via some configuration file you load from your classpath.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文