以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Web Services & Semantic Web Services 』  (http://bbs.xml.org.cn/list.asp?boardid=10)
----  如何让Skeleton调用服务端本机实现代码,例如.so文件?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=71508)


--  作者:venus_w3china
--  发布时间:1/17/2009 10:57:00 PM

--  如何让Skeleton调用服务端本机实现代码,例如.so文件?
我需要开发一个语音识别服务,可以接收一段音频,返回一段识别后的文字。而服务端本机上已经有了一个程序,可以独立运行,专门负责语音识别,将音频转换成文本。该程序是用c++写的,被编译连接成一个动态链接库文件,假设是A.so。我要做的是将它封装成一个Web服务,可以供外界调用,对外提供语音识别的功能。
我首先编写好了WSDL文件,用wsdl2java生成了Skeleton和Stub文件,其中Skeleton文件中需要导入A.so,并调用其中的某个函数,如下所示:
public class Service_RecognitionSkeleton {
    static{System.loadLibrary("A");} // 导入A.so
    public RecognitionResponse Recognize(Recognition recognition) {
            B b = new B(); // B是A.so中的一个类
            String words = b.doRecognition(recognition.getVoice()); // doRecognition()是B类的的一个方法,执行语音识别功能,入口参数是音频数据,出口参数是转换后的文本
            RecognitionResponse ret = new RecognitionResponse(); // 生成回复消息
            ret.setWords(words); // 设置返回参数
            return ret;
     }
}
该Skeleton文件随着其它文件一起被编译打包成.aar文件放在/usr/local/tomcat/webapps/axis2/WEB-INF/services/下,部署为一个Web服务,这样当有客户端发出服务调用请求时,该服务能自动执行语音识别程序,并做出反馈。
我想问的就是:作为实际的功能实现代码,A.so应该放在哪个目录下,可以使得这个web服务能够自动导入它,并且自动使用其中的类,调用其中的函数?


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms