服务器端代码:SqlServer.javaimport java.sql.*;public class SqlServer {
private String driverStr = "sun.jdbc.odbc.JdbcOdbcDriver";
private String connStr = "jdbc:odbc:mydbsource";
private Connection conn = null;
private Statement stmt = null; public SqlServer()
{
System.out.println("register drever....");
try {
Class.forName(driverStr);
}
catch(ClassNotFoundException ex) {
System.out.println(ex.getMessage());
}
}
public void setDriverStr(String dstr)
{
driverStr=dstr;
}
public void setConnStr(String cstr)
{
connStr=cstr;
}
public ResultSet executeQuery(String sql)
{
ResultSet rs = null;
try {
conn = DriverManager.getConnection(connStr);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.out.println(ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int result=0;
try{
conn = DriverManager.getConnection(connStr);
stmt = conn.createStatement();
result = stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.out.println(ex.getMessage());
}
return result;
}
public void close()
{
try{
stmt.close();
conn.close();
}
catch(SQLException ex){
System.out.println(ex.getMessage());
}
}
}客户端代码:SqlClient.javapackage client;import java.sql.SQLException;import javax.xml.namespace.QName; import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient; public class SqlClient {
@SuppressWarnings("unchecked")
public static void main(String []args){
RPCServiceClient serviceClient = null;
try {
serviceClient = new RPCServiceClient();
} catch (AxisFault e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(
"http://127.0.0.1:8080/axis2/services/rpcsql");
options.setTo(targetEPR);
Object[] opAddEntryArgs = new Object[]{"select * from book" };
Class[] classes = new Class[]{ java.sql.ResultSet.class };
QName opAddEntry = new QName("http://ws.apache.org/axis2","executeQuery");
java.sql.ResultSet rs = null;
try {
rs = (java.sql.ResultSet) serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0];
} catch (AxisFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} System.out.println("\nbookid\t\tpubtime\t\tbookname\n-------\t\t-------\t\t-------");
try {
while(rs.next())
{
System.out.println(rs.getInt("bookid")+"\t\t"+rs.getDate("pubtime")+"\t"+rs.getString("bookname"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}结果是不能进行:log4j:WARN No appenders could be found for logger (org.apache.axis2.util.Loader).
log4j:WARN Please initialize the log4j system properly.
org.apache.axis2.AxisFault: org.apache.axis2.AxisFault: Mapping qname not fond for the package: sun.jdbc.odbc
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at client.SqlClient.main(SqlClient.java:32)
Exception in thread "main" java.lang.NullPointerException
bookid pubtime bookname
------- ------- ------- at client.SqlClient.main(SqlClient.java:40)
为什么说"Mapping qname not fond for the package: sun.jdbc.odbc"啊?
这儿是不是致命的呢?若是该怎么做?
若不是那么又该怎么做?
小弟初学,找不到参考资料,刚开始用axis2的eclipse插件生成的代码,结果被stub类给搞晕了.
想先学习采用RPC方式调用,结果又弄了半天不知如何解决,拜请各位大大帮忙~~
private String driverStr = "sun.jdbc.odbc.JdbcOdbcDriver";
private String connStr = "jdbc:odbc:mydbsource";
private Connection conn = null;
private Statement stmt = null; public SqlServer()
{
System.out.println("register drever....");
try {
Class.forName(driverStr);
}
catch(ClassNotFoundException ex) {
System.out.println(ex.getMessage());
}
}
public void setDriverStr(String dstr)
{
driverStr=dstr;
}
public void setConnStr(String cstr)
{
connStr=cstr;
}
public ResultSet executeQuery(String sql)
{
ResultSet rs = null;
try {
conn = DriverManager.getConnection(connStr);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.out.println(ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int result=0;
try{
conn = DriverManager.getConnection(connStr);
stmt = conn.createStatement();
result = stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.out.println(ex.getMessage());
}
return result;
}
public void close()
{
try{
stmt.close();
conn.close();
}
catch(SQLException ex){
System.out.println(ex.getMessage());
}
}
}客户端代码:SqlClient.javapackage client;import java.sql.SQLException;import javax.xml.namespace.QName; import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient; public class SqlClient {
@SuppressWarnings("unchecked")
public static void main(String []args){
RPCServiceClient serviceClient = null;
try {
serviceClient = new RPCServiceClient();
} catch (AxisFault e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(
"http://127.0.0.1:8080/axis2/services/rpcsql");
options.setTo(targetEPR);
Object[] opAddEntryArgs = new Object[]{"select * from book" };
Class[] classes = new Class[]{ java.sql.ResultSet.class };
QName opAddEntry = new QName("http://ws.apache.org/axis2","executeQuery");
java.sql.ResultSet rs = null;
try {
rs = (java.sql.ResultSet) serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0];
} catch (AxisFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} System.out.println("\nbookid\t\tpubtime\t\tbookname\n-------\t\t-------\t\t-------");
try {
while(rs.next())
{
System.out.println(rs.getInt("bookid")+"\t\t"+rs.getDate("pubtime")+"\t"+rs.getString("bookname"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}结果是不能进行:log4j:WARN No appenders could be found for logger (org.apache.axis2.util.Loader).
log4j:WARN Please initialize the log4j system properly.
org.apache.axis2.AxisFault: org.apache.axis2.AxisFault: Mapping qname not fond for the package: sun.jdbc.odbc
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:548)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at client.SqlClient.main(SqlClient.java:32)
Exception in thread "main" java.lang.NullPointerException
bookid pubtime bookname
------- ------- ------- at client.SqlClient.main(SqlClient.java:40)
为什么说"Mapping qname not fond for the package: sun.jdbc.odbc"啊?
这儿是不是致命的呢?若是该怎么做?
若不是那么又该怎么做?
小弟初学,找不到参考资料,刚开始用axis2的eclipse插件生成的代码,结果被stub类给搞晕了.
想先学习采用RPC方式调用,结果又弄了半天不知如何解决,拜请各位大大帮忙~~
解决方案 »
- 有个别人写的jar包。我想修改里面的一个class,然后再打jar包,还原回去,怎么办?
- 跪求java算法,继承,多态,接口,抽象类方面的习题,最好有答案
- 显示hibernate插入语句,却不能真正插入数据库
- 框架中页面的跳转~~急~~!!
- 数据库查询问题
- 一个Spring的问题,急求大侠帮忙
- jsp中用out.println();来动态输出xml文件,为什么有时能显示,有时什么都没有呢?
- 请问如何获取XML中的元素名称
- 有关jdbc与sql server 2000的中文问题
- 原生的sql语句怎么写成HQL语句SELECT * FROM tmms_bookout WHERE c_id IN (SELECT cs_id FROM tm
- struts2自定类型转换器在S2SH中失效,寻求高手解决
- 定时器 销毁session non-serializable app specific session data : {} serializable app
AXIS似乎不支持复杂参数的接收,我也碰到类似的问题,返回值为List对象就会抛出类似的异常。