jbuilder9上通过ssl调用远程weblogic8.1上发布的webservice出错,求教

castlez 2004-10-17 07:12:03
weblogic8.1运行在局域网的另一台机器上,本机jbuilder编写客户端程序访问发布在远程weblogic上的webservice。
ssl已经调试通过,能通过https://myhost:7002看到页面内容,且不用ssl该webservice能运行通过,但一旦采用了ssl,客户端jb9就会报如下错误:
C:\JBuilder9\jdk1.4\bin\javaw -classpath "P:\_my\project\classes;D:\Library\webserviceclient+ssl.jar;D:\Library\classes12.jar;C:\JBuilder9\thirdparty\jakarta-tomcat-4.1.24-LE-jdk14\common\lib\servlet.jar;C:\JBuilder9\thirdparty\junit3.8\junit.jar;C:\JBuilder9\lib\unittest.jar;D:\Library\log4j-1.2.5.jar;C:\JBuilder9\lib\xercesImpl.jar;C:\JBuilder9\lib\xmlParserAPIs.jar;C:\JBuilder9\lib\saaj.jar;C:\JBuilder9\lib\jaxrpc.jar;C:\JBuilder9\lib\axis.jar;C:\JBuilder9\lib\wsdl4j.jar;C:\JBuilder9\lib\log4j-1.2.8.jar;C:\JBuilder9\lib\commons-logging.jar;C:\JBuilder9\lib\commons-discovery.jar;C:\JBuilder9\lib\activation.jar;C:\JBuilder9\lib\mail.jar;D:\Library\hibernate\hibernate2106-patched.jar;D:\Library\hibernate\hibernate216-cglib-full-2.0.2.jar;D:\Library\hibernate\hibernate216-commons-collections-2.1.1.jar;D:\Library\hibernate\hibernate216-commons-lang-1.0.1.jar;D:\Library\hibernate\hibernate216-dom4j-1.4.jar;D:\Library\hibernate\hibernate216-ehcache-0.9.jar;D:\Library\hibernate\hibernate216-odmg-3.0.jar;C:\JBuilder9\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;C:\JBuilder9\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\JBuilder9\jdk1.4\jre\lib\charsets.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\dnsns.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\ldapsec.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\localedata.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\sunjce_provider.jar;C:\JBuilder9\jdk1.4\jre\lib\im\indicim.jar;C:\JBuilder9\jdk1.4\jre\lib\jaws.jar;C:\JBuilder9\jdk1.4\jre\lib\jce.jar;C:\JBuilder9\jdk1.4\jre\lib\jsse.jar;C:\JBuilder9\jdk1.4\jre\lib\rt.jar;C:\JBuilder9\jdk1.4\jre\lib\sunrsasign.jar;C:\JBuilder9\jdk1.4\lib\dt.jar;C:\JBuilder9\jdk1.4\lib\htmlconverter.jar;C:\JBuilder9\jdk1.4\lib\tools.jar" my.test.webservice.WSTestCaller
file:/D:/Library/webserviceclient+ssl.jar!/weblogic/webservice/core/ClientDispatcher.class

javax.xml.rpc.soap.SOAPFaultException: Exception during processing: java.lang.RuntimeException: Missing license file for: WebLogic Platform 8.1 (see Fault Detail for stacktrace)

at weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:313)

at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:144)

at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)

at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:443)

at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:558)

at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)

at my.test.webservice.WSTestCaller.TestWS2(WSTestCaller.java:106)

at my.test.webservice.WSTestCaller.main(WSTestCaller.java:127)

Exception in thread "main"

难道非weblogic server端调用ssl通道的weblogic发布的webservice,也需要license么?
请高手帮忙,谢谢
//============================================
webservice java代码如下
package my.test.webservice;

public class WSTest {
public WSTest() {
}


public String test(String s) {
System.out.println("s=" + s);
return "get_" + s;
}

}

//============================================
war的WEB-INF/web-service.xml代码如下:
<web-services>
<web-service name="InspectServices" targetNamespace="my_webservice_target" uri="/wstest">
<components>
<java-class name="TestWebService1" class-name="my.test.webservice.WSTest"/>
</components>
<operations xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<operation method="test" component="TestWebService1">
<params>
<param name="s" style="in" type="xsd:string"/>
<return-param name="result" class-name="java.lang.String" type="xsd:string" />
</params>
</operation>
</operations>
</web-service>
</web-services>


//============================================
客户端调用代码如下:(使用的runtime-client-jar是wl_home/server/lib/webserviceclient+ssl.jar)
package my.test.webservice;

import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;
import java.rmi.*;
import javax.xml.rpc.*;


public class WSTestCaller {
public WSTestCaller() {
}

public void init() {
System.setProperty("javax.net.ssl.keyStore", "D:\\ca_root\\jc\\java_client_keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "12345678");
System.setProperty("javax.net.ssl.trustStore", "D:\\ca_root\\jc\\java_client_keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "12345678");
System.setProperty("javax.net.debug", "ssl");
System.setProperty("https.protocols", "TLSv1");
// use Sun's reference implementation of a URL handler for the "https" URL protocol type.
//System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
System.setProperty("java.protocol.handler.pkgs","javax.net.ssl");
// dynamically register sun's ssl provider
//Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
}

public String testHTTPS() {
System.out.println("Begin HTTPSURL Test......");
try {
HttpsURLConnection myConnection = (HttpsURLConnection) new URL("https://my_host:7002/test/test.htm").openConnection();
myConnection.connect();
InputStream myInputStream = myConnection.getInputStream();
byte[] content = wfc.service.util.StreamHelper.toByteArray(myInputStream);
myInputStream.close();
String s = new String(content);
return s;
}
catch (IOException ex) {
ex.printStackTrace();
return null;
}
}


public String TestWS2() {
try {
// Setup the global JAX-RPC service factory
System.setProperty("javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
// create service factory
ServiceFactory factory = ServiceFactory.newInstance();
// define qnames
String targetNamespace = "my_webservice_target";
QName serviceName = new QName(targetNamespace, "InspectServices");
QName portName = new QName(targetNamespace, "7002");
QName operationName = new QName("urn:xmethods-delayed-quotes", "test");
// create service
Service service = factory.createService(serviceName);
// create call
Call call = service.createCall();
// set port and operation name
call.setPortTypeName(portName);
call.setOperationName(operationName);
// add parameters
call.addParameter("s", new QName("http://www.w3.org/2001/XMLSchema", "string"), ParameterMode.IN);
call.setReturnType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
// set end point address
call.setTargetEndpointAddress("https://my_host:7002/test/wstest");
// invoke the remote web service
String result = (String) call.invoke(new Object[] {"hello"});
return result;
}
catch (RemoteException ex) {
ex.printStackTrace();
return null;
}
catch (ServiceException ex) {
ex.printStackTrace();
return null;
}
}

public static void main(String[] args) {
WSTestCaller caller = new WSTestCaller();
caller.init();
//String hr = caller.testHTTPS();
//System.out.println("HTTPSURL page is : " + hr);
String ar2 = caller.TestWS2();
System.out.println("ws2 return value is : " + ar2);
}



}
...全文
109 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyworker 2004-10-18
  • 打赏
  • 举报
回复
Missing license file

这可能跟你的WEBLOBIC的版本有关系,你可能用的是一个测试版的WEBLOGIC,这中版本的WEBLOBIC的licens限定了使用者的用户个数,用户的IP个数,还有进程数据,
介意你到网上下一个crack的版本,不要这些限制。或都你去BEA的网上去申请一个license.重新注册你的license.

1,233

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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