从Java控制台应用程序和ASP.NET应用程序调用Java

时间:2010-07-01 23:29:39

标签: java asp.net web-services console-application

最近我被要求为我公司编写一个java应用程序。我是一名经验丰富的.Net开发人员,所以这对我来说都是新的。

我的任务是制作一个包含多个高级任务的发票应用程序,例如:

  • 构建单一发票
  • 构建所有发票

我的公司希望能够从java控制台应用程序调用这些任务 - 传递相关的命令和参数来调用任务。他们还希望能够从ASP.NET应用程序调用相同的代码。

因此,我首先想到的是在Java中使用Web服务。

我的问题是:我可以从Java控制台应用程序和ASP.NET应用程序中使用Java中的Web服务吗?或许还有更好的选择。

任何能让我研究正确方向的指南都会受到赞赏。

感谢。

2 个答案:

答案 0 :(得分:1)

  

“我的公司希望能够从java控制台应用程序调用这些任务 - 传递相关的命令和参数来调用任务。他们还希望能够从ASP.NET调用相同的代码应用“。

我不确定你在问什么,但我认为简单的答案是确保你的应用程序有一个入口点方法,以便它可以作为命令行应用程序运行。你需要一个类似于以下方法的类:

package foo.bar;

public class Bazz {

    ...

    public static void main(String[] arguments) {
        // parse the arguments and run the application
        ...
    }
}

main方法的签名至关重要:

  • 必须是public static
  • 必须具有名称main
  • 它必须添加一个String[]参数,
  • 它必须具有void返回类型。

然后可以从命令行运行此命令,如下所示:

java -cp <YOUR_CLASS_PATH> foo.bar.Baz arg1 arg2 ...

这也可以通过另一个用Java编写的应用程序完成,并且(我想)也可以从ASP.NET完成。

答案 1 :(得分:0)

简单的答案是 - 是的。 Java具有用于定义Web服务和部署它们的库,Java和.NET都具有用于生成Web服务客户端的实用程序。这并不是说它会很容易!

如果我是你,我会调查使用JAX-RS实现创建REST服务(我最喜欢的是RestEASY)。这将允许您创建没有SOAP的“Web服务”,即http://server/invoices/1可能返回

<invoice>
 <items>
  <item>apple</item>
  <item>banana</item>
 <items>
 <customer>robert</customer>
 <amount>5.00</amount>
</invoice>

然后,它应该易于用任何语言解释。无论哪种方式,这将是一个陡峭的学习曲线。 Java和.NET之间的主要区别在于虽然.NET中内置了许多功能,但在Java中它遍布整个生态系统,这很好,因为它提供了多样性,但是定位功能可能需要更长的时间。 / p>