还有别的方法吗!
我们做的系统是用j2ee架构开发的!要访问一个c++开发的系统,对方系统提供了api接口!
如何访问呢?

解决方案 »

  1.   

    如果对方已经发布成webservice了的话,调用方法都是一样的,
    先得到wsdl文件,用axis中的wsdl2java生成客户端框架,
    剩下的就和使用本地的方法没什么区别了。
      

  2.   

    方法有多种,但你的我觉得可以用socket通信更方便些。因为webservice的xml数据格式定义很不统一,对接很困难。还可以考虑com和java的native code方式
      

  3.   

    全部楼上的兄弟基本上都是这个意思,既然WebService是个跨平台的服务,那接口一定是标准的啦,这里是基于wsdl来定义的,至于实现调用嘛,比较多,我用过的apache的axis还是不错的,比较简单,可以去看看
      

  4.   

    我觉得你应该先看看webservice的实例,然后问题就比较清楚了,具体怎么做,在这里是说不清楚的,至于使用的工具,我上面介绍了一个axis,可以去看看,其他的也有很多
      

  5.   

    JB:
    import from webservices:and then it will build classes of interface.the end:
    invoke the interface as often as you do.
      

  6.   

    我提供两种方案:
         (1):用JMS,本人也是刚学. 但技术上学可行的;
         (2):CORBA, 通用对象请求代理, 不过设计上比较难. 但异构系统大都是采用这种方式.
         
          以上仅供参考.
      

  7.   

    不用懂c++,用统一的标准去访问webservice,在java中实现很容易
      

  8.   

    我们目前大量的用到了java的代码调用c++代码的例子
    方法是java提供的标准的jni的做法,下面是例子
    1 做一个java的类
    package com.dayang.util;/**
     * 这个类通过dll访问域用户的信息,从而知道这个用户是否经过 了认证
     * @author red
     * @version 1.0 2004-9-3
     */
    public class DomainUserAuthenticator {
    /**
     * 用户是否得到认证
     * @param userId 用户ID
     * @param password  用户密码
     * @return
     */
    public synchronized native boolean authenticate(String userId, String password); /**取到用户所属的组
     * @param userId 用户ID
     * @return 用逗号隔开的组的字符串
     */
    public synchronized native String getGroups(String userId); public synchronized native String getRealName(String userId); static {
    try {
    System.loadLibrary("DOMAIN_USER");
    } catch (UnsatisfiedLinkError e) {
    e.printStackTrace();
    } catch (SecurityException securityexception) {
    securityexception.printStackTrace();
    }
    } public static void main(String[] args) {
    DomainUserAuthenticator authenticator = new DomainUserAuthenticator();
    System.out.println( "return:" + authenticator.authenticate("ss","ss"));
    System.out.println( "return:" + authenticator.authenticate("sssdfdsdf","sfsafss"));
    String s = authenticator.getGroups("zuoxiaojun");
    System.out.println("s:" + s);
            String realname=authenticator.getRealName("red");
            System.out.println("realname:"+realname);
    }}
    2 要求c++的开发者开发一个java可以调用的dll,也就是DOMAIN_USER.dll
    3 这个dll的头文件是用java的javah -jni命令生成的
    如果还是不懂,请看tij的关于jni的附录
      

  9.   

    我有个师傅说开发JAVA程序用双眼最好:眨左眼表示1,眨右眼表示0,这样就可以躺在床上写JAVA程序了,这样开发出来的程序效率超高,而且成本很低,而且可以劳逸结合,写程序的时候女朋友也可以帮上忙,我感觉比什么jbuilder,什么ECLIPSE,还有什么NetBean的划算和好玩多了!只是我还没练就!