急!用axis写了个webservice,clob类型参数不识别怎么办?
目开发中用到了webservice,所以就用axis写了个简单的测试一下LoadDll.java,将该文件放到axis_home目录下,修改后缀名为jws,即LoadDll.jws,并将其部署到tomcat服务器中,启动服务器,然后访问http://localhost:8080/axis/LoadDll.jws?wsdl 也能正常访问,而且生成了class类。只是这个类中有个方法的参数要用到java.sql.clob类型的参数:
import java.io.BufferedReader;
import java.io.Reader;
import java.sql.Clob;
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;
public class LoadDll {
public String import(String lpServerUrl, String lpUserName,String lpPassWord, java.sql.Clob clob) {
-- code ;
}
}
生成的wsdl文件中该参数描述为:<wsdl:part name="clob" type="xsd:anyType" />
tomcat服务器后台报错信息如下:
the class java.sql.Clob is defined in a java or javax package and connot be converted into an xml schema type.
An xml schema anyType will be used to define this class in the wsdl file.
而用plsql存储过程调用该webservice的时候报如下异常:
ORA-29532: Java 调用被未捕获的 Java 异常错误终止: java.lang.IllegalAccessException: error.build.wsdl.model: oracle.j2ee.ws.common.tools.api.WsdlValidationException: WSDLException: faultCode=INVALID_WSDL: model error: type "{http://sql.java}Clob" not found.
这个参数类型对应数据库中的clob,不能更换成String,怎么能解决该问题啊???急!!! 望高手出手相助!!!