碰到了个大问题,我按http://www.blogjava.net/RongHao/archive/2007/06/12/123635.html里面的第三种方式建立的webservice服务, 
三、使用SSL/HTTPS协议来传输 
    Web服务也可以使用SSL作为传输协议。虽然JAX-RPC并没有强制规定是否使用SSL协议,但在tomcat 下使用HTTPS协议。 
1、使用JDK自带的工具创建密匙库和信任库。   1)通过使用以下的命令来创建服务器端的密匙库: 
  
keytool -genkey -alias Server -keystore server.keystore -keyalg RSA 
  输入keystore密码:  changeit 
  您的名字与姓氏是什么? 
  [Unknown]:  Server 
  您的组织单位名称是什么? 
  [Unknown]:  ec 
  您的组织名称是什么? 
  [Unknown]:  ec 
  您所在的城市或区域名称是什么? 
  [Unknown]:  beijing 
  您所在的州或省份名称是什么? 
  [Unknown]:  beijing 
  该单位的两字母国家代码是什么 
  [Unknown]:  CN 
CN=Server, OU=ec, O=ec, L=beijing, ST=beijing, C=CN 正确吗? 
  [否]:  y 输入 <Server>的主密码 
        (如果和 keystore 密码相同,按回车): 
  以上命令执行完成后,将获得一个名为server.keystore的密匙库。 
  
  2)生成客户端的信任库。首先输出RSA证书: 
  
keytool -export -alias Server -file test_axis.cer -storepass changeit -keystore server.keystore 
  然后把RSA证书输入到一个新的信任库文件中。这个信任库被客户端使用,被用来验证服务器端的身份。 
  
keytool -import -file test_axis.cer -storepass changeit -keystore client.truststore -alias serverkey -noprompt 
  以上命令执行完成后,将获得一个名为client.truststore的信任库。 
  
  3)同理生成客户端的密匙库client.keystore和服务器端的信任库server.truststore.方便起见给出.bat文件 
    gen-cer-store.bat内容如下: 
    
    set SERVER_DN="CN=Server, OU=ec, O=ec, L=BEIJINGC, S=BEIJING, C=CN" 
    set CLIENT_DN="CN=Client, OU=ec, O=ec, L=BEIJING, S=BEIJING, C=CN" 
    set KS_PASS=-storepass changeit 
    set KEYINFO=-keyalg RSA     keytool -genkey -alias Server -dname %SERVER_DN% %KS_PASS% -keystore server.keystore %KEYINFO% -keypass changeit 
    keytool -export -alias Server -file test_axis.cer %KS_PASS% -keystore server.keystore 
    keytool -import -file test_axis.cer %KS_PASS% -keystore client.truststore -alias serverkey -noprompt     keytool -genkey -alias Client -dname %CLIENT_DN% %KS_PASS% -keystore client.keystore %KEYINFO% -keypass changeit 
    keytool -export -alias Client -file test_axis.cer %KS_PASS% -keystore client.keystore 
    keytool -import -file test_axis.cer %KS_PASS% -keystore server.truststore -alias clientkey -noprompt 
    
  好的,现在我们就有了四个文件:server.keystore,server.truststore,client.keystore,client.truststore 
  
2、更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其实里面有,只是被注释掉了) 
      
<Connector port="8440" 
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
              enableLookups="false" disableUploadTimeout="true" 
              acceptCount="100" scheme="https" secure="true" 
              clientAuth="true" keystoreFile="f:\server.keystore" keystorePass="changeit" 
                truststoreFile="f:\server.truststore" truststorePass="changeit" 
              sslProtocol="TLS" /> 3、把HelloWorld重新部署一次,在server-config.wsdd中修改如下部署代码。(还原了而已) 
    
<service name="HelloWorld" provider="java:RPC"> 
    <requestFlow> 
      <handler type="soapmonitor"/> 
    </requestFlow> 
    <responseFlow> 
      <handler type="soapmonitor"/> 
    </responseFlow> 
    <parameter name="allowedMethods" value="sayHello"/> 
    <parameter name="className" value="HelloWorld"/> 
    </service> 
    
4、修改客户端程序 TestClient.java(修改的部分已标出) 
public class TestClient 

  public static void main(String [] args) throws Exception { 
  String endpoint = "https://localhost:" +"8440"+ "/axis/HelloWorld";//注意区别在这里!https!     System.setProperty("javax.net.ssl.keyStore", "E:\\client.keystore"); 
        System.setProperty("javax.net.ssl.keyStorePassword", "password"); 
        System.setProperty("javax.net.ssl.trustStore", "E:\\client.truststore"); 
        System.setProperty("javax.net.ssl.trustStorePassword", "password");       Service  service = new Service();  
      Call    call    = (Call) service.createCall(); 
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );     call.setOperationName( "sayHello" ); 
    String res = (String) call.invoke( new Object[] {} );     System.out.println( res ); 
  } 

用java客房端调用的话能成功,但用c#作为客房端的话就调用不成功了,不知道怎样导入证书, 
希望各位牛人能帮下忙。