Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以用C#连接到Java API吗?_C#_Java_Web Services_Api - Fatal编程技术网

我可以用C#连接到Java API吗?

我可以用C#连接到Java API吗?,c#,java,web-services,api,C#,Java,Web Services,Api,我的任务是编写一个应用程序来连接双击DART API并下载广告创意 API目前仅为Java,但他们正在(最终)发布一个SOAP版本 作为一名C#开发人员,我希望用C#编写应用程序并访问Java API,直到SOAP API可用为止 我能做这个吗?如果是,怎么做 如果没有,我将学习Java,编写应用程序,然后在SOAP API可用时重做,但这不是首选的操作过程 谢谢您的帮助。这是一个web服务API还是提供给您的JAR文件?在后一种情况下,J#可能是一种选项,在这个线程中还有一些其他桥接选项:作为

我的任务是编写一个应用程序来连接双击DART API并下载广告创意

API目前仅为Java,但他们正在(最终)发布一个SOAP版本

作为一名C#开发人员,我希望用C#编写应用程序并访问Java API,直到SOAP API可用为止

我能做这个吗?如果是,怎么做

如果没有,我将学习Java,编写应用程序,然后在SOAP API可用时重做,但这不是首选的操作过程


谢谢您的帮助。

这是一个web服务API还是提供给您的JAR文件?在后一种情况下,J#可能是一种选项,在这个线程中还有一些其他桥接选项:

作为一种旁白,我可以建议您以RESTful的方式编写web服务,而不是(或结合)SOAP?这样做的好处是,您可能希望在将来使用服务的任何语言之间都具有互操作性,而不仅仅是那些可以基于WSDL生成代码的语言。只是想一想。

是的,你可以这样做,不久前我们也做了类似的事情

双击API是基于Java的,本质上是一组查询数据库的方法

您需要做的是使用Axis2之类的东西将这些方法包装到web服务中,然后将web服务部署到Tomcat服务器(所有这些都是开源的)。这将公开web服务,然后您可以从任何您喜欢的地方调用web服务

因此,在您的例子中,您在VisualStudio中添加了一个web服务引用,然后您的C#类将调用调用双击Java方法的web服务

实际的Java代码是最少的(大约10行),因为它所做的只是一个调用,然后格式化输出。部署比编写代码花费的时间更长

我们的Java开发环境是Eclipse,我在博客中提到了它。

我认为使用J#层可能是一个不错的选择。我以前只用过一次,但它对我起了作用。

可能是你的解决方案。它是一个Java虚拟机,将Java字节码转换为.NETIL

您可以做的是使用ikvmc.exe将Java API(作为jar或源文件提供)编译成.NET程序集,然后从C#项目中引用该程序集

IKVM对Java用户界面(AWT)的支持是有限的,但因为它是一个API,所以这不应该是相关的

我还没有亲自尝试过,所以我不能保证这真的有效


请看

我们实际上采用了稍微不同的方法

  • C#web服务现在使用javaw.exe(使用进程)调用Java类,并传入一个id(GUID)
  • GUID用作java类编写的XML文件的文件名
  • 如果进程(javaw)结束时没有错误,那么web服务将打开(GUID).xml文件并检索数据

  • 虽然这不是最佳方法,但它在短期内适用于此过程,从长期来看,当SOAP解决方案可用时,web服务很容易更新。

    忘记Java DART API,转而使用这种新的web服务API方法:


    我使用IKVMC转换了jar文件,并且能够在Google Eng授予访问权限后立即开始使用API。现在,我只需浏览文档,了解如何做我需要的事情。