我只需使用Dynamic Ax
连接JAVA
我经历了很多博客和文章,但它无法做到这一点
看到结构,
以下是从dynamic AX
C#代码中的更多内容
它使用AxaptaObject
(应用程序连接器)和AxaptaContainer
(数据容器)来加载Dynamic AX business connector
(DLL文件)。
现在的问题是,
JNI
我们可以通过axapta
加载java
Dynamic Ax connector DLL file
以上的returnsPOJO like object
对象吗? (我希望不会)method name of AX
功能接受Method parameter
,//fetch 'AxaptaObject', process method and respond to client(Kind of reflection in JAVA)
){ DLL file
JNI
并使用C#
访问该功能。问题是我们在AX中编写了业务逻辑,但现在我们需要将JAVA
代码迁移到{{1}}。
答案 0 :(得分:2)
使用JNI我们可以通过加载Dynamic Ax连接器DLL文件在java中使用axapta对象吗? (我希望不会)
不,可能不直接。
我们可以编写一些动态C#代码(Standalone C#program), returnPOJO like object function ....然后为上面的函数创建一个DLL文件,并使用JNI访问它。
有点,你不能直接将一些C#对象传递给Java 但你应该能够为一些C#dll创建一个JNI包装器并将它们连接在一起。我建议创建一个独立的DLL,它具有一些统一的接口,可以与AX交互以完成您的需要。您可以使用本机可执行文件执行所有测试,并在深入了解JNI部分之前解决您的错误。这样做的原因是调试JNI问题是一场噩梦,如果您要从本机代码跳转到JVM然后再转移到.NET框架,那么调试几乎是不可能的。在您对库正常运行感到满意之后,为您的新.NET本机库创建一个JNI(甚至是JNA)包装器,基本上只需使用您的库并将结果转换为本机代码中的Java对象。
微软是否提供了一些直接连接Dynamic AX的Java库? (一定不能!!)
我严重怀疑它。上述方法假定您只想在.NET支持的Windows平台上运行此JNI代码。如果不是这种情况,则需要直接通过数据库或其他基于API的接口与支持服务器通信。我假设你在这里讨论的业务连接器是用C#或.NET实现的部分。如果这是开源的,或者记录了它用于与服务器通信的协议,请跳过本机代码,然后在Java中重新实现该连接器。如果没有,你唯一的选择就是逆向工程,它不会很漂亮。
答案 1 :(得分:1)
Web服务是最佳选择。您可以在AX 2012中本地开发WPF服务,如果使用AX 2009,您可以在Visual Studio中手动开发它们并通过Business Connector连接到AX。
没有,而且我确信除了某种Web服务之外,还没有一种方法可以直接从Java连接到AX。 Business Connector已停止使用.NET,因此根本不需要其他版本。
答案 2 :(得分:0)
可以使用Java创建Web服务。您可以创建Java Web服务的c#客户端。您可以从Dynamics Ax访问c#客户端的dll。