Axis的问题,急!

yingyi8989 2007-12-12 03:28:10
Server:
public class MyService
{
public String userLogin(String name, String password)
{
if ("123".equals(name) && "123".equals(password)) {
return true;
}
retrun false;
}
}

拷贝了一份文件MyService.java 改名为MyService.jws

Client:
public class MainTest {
public static void main(String[] args)
{
try {
String endpoint = "http://localhost:8085/test/MyService.jws";

Service service = new Service();
Call call = null;


call = (Call) service.createCall();

call.setOperationName(new QName(endpoint, "userLogin"));
call.setTargetEndpointAddress(new java.net.URL(endpoint));

Boolean bool = (Boolean) call.invoke(new Object[] { "123","123" });
System.out.println("return value is " + bool);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

这样调用是成功的,但是看到服务那边的Session会越来越多。所以加入了server-config.wsdd文件,原来是使用默认的。
在默认的文件中加入了以下配置:
<handler name="session"
type="java:org.apache.axis.handlers.SimpleSessionHandler" />
<service name="MyService" provider="java:RPC" style="wrapped">
<namespace>urn:</namespace>
<requestFlow>
<handler type="session" />
</requestFlow>
<responseFlow>
<handler type="session" />
</responseFlow>
<parameter name="className" value="MyService" />
<parameter name="allowedMethods" value="*" />
</service>

这样就更改了访问的url,现在client的代码如下:

public class MainTest {
public static void main(String[] args)
{
try {
String endpoint = "http://localhost:8085/test/services/MyService?wsdl";

Service service = new Service();
Call call = null;


call = (Call) service.createCall();

call.setOperationName(new QName(endpoint, "userLogin"));
call.setTargetEndpointAddress(new java.net.URL(endpoint));

Boolean bool = (Boolean) call.invoke(new Object[] { "123","123" });
System.out.println("return value is " + bool);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

有两个问题:
1、如果我想用原来的url,要怎么做?
2、后来的代码Boolean bool = (Boolean) call.invoke(new Object[] { "123","123" }); 会报类型转换错误,为什么前面的方法可以得到Boolean,后面的只得到String呢?
先谢了。
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzj520hyy 2008-02-20
  • 打赏
  • 举报
回复
我也刚学,要用原来的URL有一个下下策:在web.xml中定义这样的映射.......
关于第2个问题,说一点我的看法,你不觉得使用invoke很别扭吗?用动态代理吧,虽然多一个接口.但是可以更自然的操作不是吗?
jjjcct 2008-02-20
  • 打赏
  • 举报
回复
http://localhost:8085/test/services/MyService?wsdl 这个url能起作用吗?
1 下载 Myeclipse Axis2 插件 http: archive apache org dist ws axis2 tools 1 4 1 下载 axis2 eclipse codegen wizard zip 和 axis2 eclipse service archiver wizard zip http: labs xiaonei com apache mirror ws axis2 1 5 axis2 1 5 war zip 下载 axis2 1 5 war zip 2 .解压插件 $ECLIPSE HOME 表示你安装的 myeclipse 主目录 将上述两个插件都解压到 $ECLIPSE HOME eclipse plugins 目录中; Axis2 Codegen Wizard 1 3 0 和 Axis2 Service Archiver 1 3 0 3 在 $ECLIPSE HOME eclipse links 目录下增加文件 axis eclipse plugin link 写入 path $ECLIPSE HOME eclipse plugins 千万不要直接复制 4 重新启动 myeclipse 在 file >new >other 中即可看到 Axis2 Wizards 至此 axis2 插件安装成功 GXGX 5 赶快试下用 wsdl 文件生成 java 源文件吧 是不是有错误出现 对 事情就是这样发展的 6 An error occurred while completing process java lang reflect InvocationTargetException 的错误 嗯不用 有得解 不过我当初很惨弄了一个晚上 解决方法如下: step 1 从 AXIS2 的 LIB 库中复制 "geronimo stax api 1 0 spec 1 0 1 jar" 和 "backport util concurrent 3 1 jar" 文件到 Axis2 Codegen Wizard 1 3 0 的 lib 目录中 同时修改 Axis2 Codegen Wizard 1 3 0 下的 plugin xml 文件 在 <runtime> 中添加 <library name "lib geronimo stax api 1 0 spec 1 0 1 jar"> <export name " " > < library> <library name "lib backport util concurrent 3 1 jar"> <export name " " > < library> 到 plugin xml 文件中 保存 step 2 将 $workspace 位置 metadata plugins 下目录 Axis2 Codegen Wizard 删除 step 3 在命令行下切换至 $ECLIPSE HOME 目录 然后执行: eclipse –clear step 4 除了上面步骤还要: (4 1) 把Axis2 Codegen wizard 1 3 0 eclipse plugins Axis2 Codegen wizard 1 3 0 的名字改成Axis2 Codegen wizard 1 4 0 (4 2) 在plugin xml中在<plugin>中 把Axis2 Codegen wizard的version "1 3 0"改成version "1 4 0" 到plugin xml文件中 保存后重新启动Eclipse即可 ">1 下载 Myeclipse Axis2 插件 http: archive apache org dist ws axis2 tools 1 4 1 下载 axis2 eclipse codegen wizard zip 和 axis2 eclipse service archiver wizard zip http: labs xiaonei com apache mirror ws axis2 1 5 axis2 1 5 war zip 下载 axis2 1 5 war zip 2 .解压插件 $E [更多]
该手册为全套手册的第三部分,介绍了西门子 SIMOTION 运动 控制器的基本组态、调试、编程与常用运动控制命令。 目 目目 目 录 录录 录 一 一一 一、 、、 、SIMOTION 概述 ............................................................................................................. 1 1.1 应用背景 ..........................................................................................................................1 1.2 SIMOTION 的系统组成及功能......................................................................................1 1.3 硬件平台 ..........................................................................................................................2 1.4 SCOUT 工程开发平台 ....................................................................................................4 二 二二 二、 、、 、系统组态 系统组态 ........................................................................................................................... 6 2.1 新建项目 ..........................................................................................................................6 2.2 插入设备 ..........................................................................................................................7 2.3 建立连接 ..........................................................................................................................8 2.3.1 设置通讯接口 ...........................................................................................................8 2.3.2 配置 SIMOTION 上 DP 接口参数...........................................................................9 2.3.3 配置 PG/PC 的通讯方式 ........................................................................................10 2.3.4 激活至 SINAMICS_Integrated 的路由 ..................................................................11 2.3.5 下载硬件组态 .........................................................................................................12 2.4 项目配置与调试 ............................................................................................................14 2.4.1 恢复 SINAMICS_Integrated 至工厂设置 .................

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧