VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 642|回复: 1

java中用wsdd来部署带*.jar包的服务(类),它的所有服务都不能显示!

[复制链接]

5

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-2-22 12:30:02 | 显示全部楼层 |阅读模式
不带*.jar的服务部署为:
类名:HelloService.class
它的存放地方:webapps\axis\WEB-INF\classes\
public class HelloService
{
public String sayHello(String username)
{
return "Hello:"+username;
}
}
在server-config.wsdd文件里面写入:
它的存放地方:webapps\axis\WEB-INF
...
<service name="HelloService" provider="java:RPC">
<parameter name="className" value="HelloService"/>
<parameter name="allowedMethods" value="*"/>
</service>
...

问题:当类HelloService需要有*.jar包来支持时,这样做所有的服务就不能显示。用jws部署时说无法找到*.jar包。请问题这种情况如何部署?
回复

使用道具 举报

5

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-5-19 21:30:01 | 显示全部楼层
搞定:
代码中带*.jar 包,则把用到的所有*.jar包放到对就的“WEB-INF\lib”目录中去。

如果代码中带有自己写的工程中的包的话,则把对就这个包所在的整个目录copy到“WEB-INF\classes” 相当于把工程中的包当成一个类处理。

如果服务处于一个包中,比如:
package myexcel;

import jxl.*;
import jxl.format.UnderlineStyle;
import jxl.write.*;
import jxl.write.Number;
import jxl.write.Boolean;
import java.io.*;
import java.util.*;
import myBean.*;
import java.io.File;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;
import org.apache.log4j.*;


public class MyExcel {
        /**
     * 读取Excel
     * @param filePath
     */
        static final Logger logger = (Logger) Logger.getLogger(MyExcel.class);
       
    public ArrayList readExcel(String filePath)
    {
            ArrayList _myExA=new ArrayList();
    ...

那么就只能把这个包(也就是这个myexcel包所对应工程中的整个目录:myexcel)copy到“WEB-INF\classes”目录下面。

在server-config.wsdd中应该这样写:
<service name="MyExcel" provider="java:RPC">  
  <parameter name="className" value="myexcel.MyExcel"/>
  <parameter name="allowedMethods" value="*"/>
</service>

或者反过来做,把axis的*.jar包放到工程对应的“WEB-INF\lib”目录下面。效果是一样的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表