Re: BCJSSE close notify problem
Huangfu <[email protected]>
| Newsgroups | gmane.comp.encryption.bouncy-castle.devel |
|---|---|
| Message-ID | <[email protected]> |
//GoldService.java
public interface GoldService extends javax.xml.rpc.Service {
public java.lang.String getGoldServiceHttpPortAddress();
public bank.ws.GoldServicePortType getGoldServiceHttpPort() throws
javax.xml.rpc.ServiceException;
public bank.ws.GoldServicePortType getGoldServiceHttpPort(java.net.URL
portAddress) throws javax.xml.rpc.ServiceException; }
//GoldServiceHttpBindingStub.java import java.security.Security;
import org.apache.axis.AxisProperties;
public class GoldServiceHttpBindingStub extends org.apache.axis.client.Stub
implements bank.ws.GoldServicePortType {
private java.util.Vector cachedSerClasses = new java.util.Vector();
private java.util.Vector cachedSerQNames = new java.util.Vector();
private java.util.Vector cachedSerFactories = new java.util.Vector();
private java.util.Vector cachedDeserFactories = new java.util.Vector();
static org.apache.axis.description.OperationDesc [] _operations;
static {
_operations = new org.apache.axis.description.OperationDesc[1];
_initOperationDesc1();
}
private static void _initOperationDesc1(){
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName("informGoldValue");
param = new org.apache.axis.description.ParameterDesc(new
javax.xml.namespace.QName("http://ws.fstop", "in0"),
org.apache.axis.description.ParameterDesc.IN, new
javax.xml.namespace.QName("http://ws.fstop", "Gold"), bank.ws.Gold.class,
false, false);
param.setNillable(true);
oper.addParameter(param);
oper.setReturnType(new javax.xml.namespace.QName("http://ws.fstop",
"GoldSell"));
oper.setReturnClass(bank.ws.GoldSell.class);
oper.setReturnQName(new javax.xml.namespace.QName("http://ws.fstop",
"out"));
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
_operations[0] = oper;
}
public GoldServiceHttpBindingStub() throws org.apache.axis.AxisFault {
this(null);
}
public GoldServiceHttpBindingStub(java.net.URL endpointURL,
javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
this(service);
super.cachedEndpoint = endpointURL;
}
public GoldServiceHttpBindingStub(javax.xml.rpc.Service service) throws
org.apache.axis.AxisFault {
if (service == null) {
super.service = new org.apache.axis.client.Service();
} else {
super.service = service;
}
((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
java.lang.Class cls;
javax.xml.namespace.QName qName;
javax.xml.namespace.QName qName2;
java.lang.Class beansf =
org.apache.axis.encoding.ser.BeanSerializerFactory.class;
java.lang.Class beandf =
org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
java.lang.Class enumsf =
org.apache.axis.encoding.ser.EnumSerializerFactory.class;
java.lang.Class enumdf =
org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
java.lang.Class arraysf =
org.apache.axis.encoding.ser.ArraySerializerFactory.class;
java.lang.Class arraydf =
org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
java.lang.Class simplesf =
org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
java.lang.Class simpledf =
org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
java.lang.Class simplelistsf =
org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
java.lang.Class simplelistdf =
org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
qName = new javax.xml.namespace.QName("http://ws.fstop",
"ArrayOfGoldProduct");
cachedSerQNames.add(qName);
cls = bank.ws.GoldProduct[].class;
cachedSerClasses.add(cls);
qName = new javax.xml.namespace.QName("http://ws.fstop",
"GoldProduct");
qName2 = new javax.xml.namespace.QName("http://ws.fstop",
"GoldProduct");
cachedSerFactories.add(new
org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
cachedDeserFactories.add(new
org.apache.axis.encoding.ser.ArrayDeserializerFactory());
qName = new javax.xml.namespace.QName("http://ws.fstop",
"ArrayOfGoldSellProduct");
cachedSerQNames.add(qName);
cls = bank.ws.GoldSellProduct[].class;
cachedSerClasses.add(cls);
qName = new javax.xml.namespace.QName("http://ws.fstop",
"GoldSellProduct");
qName2 = new javax.xml.namespace.QName("http://ws.fstop",
"GoldSellProduct");
cachedSerFactories.add(new
org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2));
cachedDeserFactories.add(new
org.apache.axis.encoding.ser.ArrayDeserializerFactory());
qName = new javax.xml.namespace.QName("http://ws.fstop",
"Gold");
cachedSerQNames.add(qName);
cls = bank.ws.Gold.class;
cachedSerClasses.add(cls);
cachedSerFactories.add(beansf);
cachedDeserFactories.add(beandf);
qName = new javax.xml.namespace.QName("http://ws.fstop",
"GoldProduct");
cachedSerQNames.add(qName);
cls = bank.ws.GoldProduct.class;
cachedSerClasses.add(cls);
cachedSerFactories.add(beansf);
cachedDeserFactories.add(beandf);
qName = new javax.xml.namespace.QName("http://ws.fstop",
"GoldSell");
cachedSerQNames.add(qName);
cls = bank.ws.GoldSell.class;
cachedSerClasses.add(cls);
cachedSerFactories.add(beansf);
cachedDeserFactories.add(beandf);
qName = new javax.xml.namespace.QName("http://ws.fstop",
"GoldSellProduct");
cachedSerQNames.add(qName);
cls = bank.ws.GoldSellProduct.class;
cachedSerClasses.add(cls);
cachedSerFactories.add(beansf);
cachedDeserFactories.add(beandf);
}
protected org.apache.axis.client.Call createCall() throws
java.rmi.RemoteException {
try {
org.apache.axis.client.Call _call = super._createCall();
if (super.maintainSessionSet) {
_call.setMaintainSession(super.maintainSession);
}
if (super.cachedUsername != null) {
_call.setUsername(super.cachedUsername);
}
if (super.cachedPassword != null) {
_call.setPassword(super.cachedPassword);
}
if (super.cachedEndpoint != null) {
_call.setTargetEndpointAddress(super.cachedEndpoint);
}
if (super.cachedTimeout != null) {
_call.setTimeout(super.cachedTimeout);
}
if (super.cachedPortName != null) {
_call.setPortName(super.cachedPortName);
}
java.util.Enumeration keys = super.cachedProperties.keys();
while (keys.hasMoreElements()) {
java.lang.String key = (java.lang.String)
keys.nextElement();
_call.setProperty(key, super.cachedProperties.get(key));
}
// All the type mapping information is registered
// when the first call is made.
// The type mapping information is actually registered in
// the TypeMappingRegistry of the service, which
// is the reason why registration is only needed for the first
call.
synchronized (this) {
if (firstCall()) {
// must set encoding style before registering
serializers
_call.setEncodingStyle(null);
for (int i = 0; i < cachedSerFactories.size(); ++i) {
java.lang.Class cls = (java.lang.Class)
cachedSerClasses.get(i);
javax.xml.namespace.QName qName =
(javax.xml.namespace.QName)
cachedSerQNames.get(i);
java.lang.Object x = cachedSerFactories.get(i);
if (x instanceof Class) {
java.lang.Class sf = (java.lang.Class)
cachedSerFactories.get(i);
java.lang.Class df = (java.lang.Class)
cachedDeserFactories.get(i);
_call.registerTypeMapping(cls, qName, sf, df,
false);
}
else if (x instanceof
javax.xml.rpc.encoding.SerializerFactory) {
org.apache.axis.encoding.SerializerFactory sf =
(org.apache.axis.encoding.SerializerFactory)
cachedSerFactories.get(i);
org.apache.axis.encoding.DeserializerFactory df
= (org.apache.axis.encoding.DeserializerFactory)
cachedDeserFactories.get(i);
_call.registerTypeMapping(cls, qName, sf, df,
false);
}
}
}
}
return _call;
}
catch (java.lang.Throwable _t) {
throw new org.apache.axis.AxisFault("Failure trying to get the
Call object", _t);
}
}
public bank.ws.GoldSell informGoldValue(bank.ws.Gold in0) throws
java.rmi.RemoteException {
if (super.cachedEndpoint == null) {
throw new org.apache.axis.NoEndPointException();
}
org.apache.axis.client.Call _call = createCall();
_call.setOperation(_operations[0]);
_call.setUseSOAPAction(true);
_call.setSOAPActionURI("");
_call.setEncodingStyle(null);
_call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR,
Boolean.FALSE);
_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS,
Boolean.FALSE);
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
_call.setOperationName(new
javax.xml.namespace.QName("http://ws.fstop", "informGoldValue"));
setRequestHeaders(_call);
setAttachments(_call);
try { java.lang.Object _resp = _call.invoke(new java.lang.Object[]
{in0});
if (_resp instanceof java.rmi.RemoteException) {
throw (java.rmi.RemoteException)_resp;
}
else {
extractAttachments(_call);
try {
return (bank.ws.GoldSell) _resp;
} catch (java.lang.Exception _exception) {
return (bank.ws.GoldSell)
org.apache.axis.utils.JavaUtils.convert(_resp, bank.ws.GoldSell.class);
}
}
} catch (org.apache.axis.AxisFault axisFaultException) {
throw axisFaultException;
}
}
}
//GoldServiceLocator.java
import javax.activation.DataHandler;
import javax.mail.internet.MimeMultipart;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Date;
import javax.naming.*;
import java.util.Properties;
import java.text.*;
import javax.sql.*;
import userstar.*;
public class GoldServiceLocator extends org.apache.axis.client.Service
implements bank.ws.GoldService {
public GoldServiceLocator() {
}
private Connection conn=null;
private Statement Stmt=null;
public GoldServiceLocator(org.apache.axis.EngineConfiguration config) {
super(config);
}
public GoldServiceLocator(java.lang.String wsdlLoc,
javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
super(wsdlLoc, sName);
}
public String getPortAddress ()
{
String sql = "select * from tai_user where tai_user='008' ";
String address="";
try {
Stmt = ConnBeanS.getStatement();
ResultSet rs=Stmt.executeQuery(sql);
if(rs.first())
{
address = rs.getString("url");
}
ConnBeanS.setStatementClose(Stmt);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return address ;
}
// Use to get a proxy class for GoldServiceHttpPort 210.61.159.98 test
196
// test http://210.65.217.178:5555 //210.65.217.177:443
//epgw.hncb.com.tw
private java.lang.String GoldServiceHttpPort_address = "
http://118.163.137.170/GoldService/GoldService.asmx";
public java.lang.String getGoldServiceHttpPortAddress() {
//GoldServiceHttpPort_address=getPortAddress ();
return GoldServiceHttpPort_address;
}
// The WSDD service name defaults to the port name.
private java.lang.String GoldServiceHttpPortWSDDServiceName =
"GoldServiceHttpPort";
public java.lang.String getGoldServiceHttpPortWSDDServiceName() {
return GoldServiceHttpPortWSDDServiceName;
}
public void setGoldServiceHttpPortWSDDServiceName(java.lang.String name)
{
GoldServiceHttpPortWSDDServiceName = name;
}
public bank.ws.GoldServicePortType getGoldServiceHttpPort() throws
javax.xml.rpc.ServiceException {
java.net.URL endpoint;
try {
endpoint = new java.net.URL(GoldServiceHttpPort_address);
}
catch (java.net.MalformedURLException e) {
throw new javax.xml.rpc.ServiceException(e);
}
return getGoldServiceHttpPort(endpoint);
}
public bank.ws.GoldServicePortType getGoldServiceHttpPort(java.net.URL
portAddress) throws javax.xml.rpc.ServiceException {
try {
bank.ws.GoldServiceHttpBindingStub _stub = new
bank.ws.GoldServiceHttpBindingStub(portAddress, this);
_stub.setPortName(getGoldServiceHttpPortWSDDServiceName());
return _stub;
}
catch (org.apache.axis.AxisFault e) {
return null;
}
}
public void setGoldServiceHttpPortEndpointAddress(java.lang.String
address) {
GoldServiceHttpPort_address = address;
}
/**
* For the given interface, get the stub implementation.
* If this service has no port for the given interface,
* then ServiceException is thrown.
*/
public java.rmi.Remote getPort(Class serviceEndpointInterface) throws
javax.xml.rpc.ServiceException {
try {
if
(bank.ws.GoldServicePortType.class.isAssignableFrom(serviceEndpointInterface))
{
bank.ws.GoldServiceHttpBindingStub _stub = new
bank.ws.GoldServiceHttpBindingStub(new
java.net.URL(GoldServiceHttpPort_address), this);
_stub.setPortName(getGoldServiceHttpPortWSDDServiceName());
return _stub;
}
}
catch (java.lang.Throwable t) {
throw new javax.xml.rpc.ServiceException(t);
}
throw new javax.xml.rpc.ServiceException("There is no stub
implementation for the interface: " + (serviceEndpointInterface == null ?
"null" : serviceEndpointInterface.getName()));
}
/**
* For the given interface, get the stub implementation.
* If this service has no port for the given interface,
* then ServiceException is thrown.
*/
public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class
serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
if (portName == null) {
return getPort(serviceEndpointInterface);
}
java.lang.String inputPortName = portName.getLocalPart();
if ("GoldServiceHttpPort".equals(inputPortName)) {
return getGoldServiceHttpPort();
}
else {
java.rmi.Remote _stub = getPort(serviceEndpointInterface);
((org.apache.axis.client.Stub) _stub).setPortName(portName);
return _stub;
}
}
public javax.xml.namespace.QName getServiceName() {
return new javax.xml.namespace.QName("http://ws.fstop",
"GoldService");
}
private java.util.HashSet ports = null;
public java.util.Iterator getPorts() {
if (ports == null) {
ports = new java.util.HashSet();
ports.add(new javax.xml.namespace.QName("http://ws.fstop",
"GoldServiceHttpPort"));
}
return ports.iterator();
}
/**
* Set the endpoint address for the specified port name.
*/
public void setEndpointAddress(java.lang.String portName,
java.lang.String address) throws javax.xml.rpc.ServiceException {
if ("GoldServiceHttpPort".equals(portName)) {
setGoldServiceHttpPortEndpointAddress(address);
}
else
{ // Unknown Port Name
throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint
Address for Unknown Port" + portName);
}
}
/**
* Set the endpoint address for the specified port name.
*/
public void setEndpointAddress(javax.xml.namespace.QName portName,
java.lang.String address) throws javax.xml.rpc.ServiceException {
setEndpointAddress(portName.getLocalPart(), address);
}
}
//GoldServicePortType.java
public interface GoldServicePortType extends java.rmi.Remote {
public bank.ws.GoldSell informGoldValue(bank.ws.Gold in0) throws
java.rmi.RemoteException; } //GoldServicePortTypeProxy.java import
java.sql.ResultSet; import java.sql.Statement;
import org.apache.axis.EngineConfiguration;
import org.apache.axis.configuration.FileProvider;
import userstar.ConnBeanS;
public class GoldServicePortTypeProxy implements bank.ws.GoldServicePortType
{
private String _endpoint = null;
private bank.ws.GoldServicePortType goldServicePortType = null;
public GoldServicePortTypeProxy() {
_initGoldServicePortTypeProxy();
}
public GoldServicePortTypeProxy(String endpoint) {
_endpoint = endpoint;
_initGoldServicePortTypeProxy();
}
private Statement Stmt=null;
public String getPortFile ()
{
String sql = "select * from tai_user where tai_user='008' ";
String address="";
try {
Stmt = ConnBeanS.getStatement();
ResultSet rs=Stmt.executeQuery(sql);
if(rs.first())
{
address = rs.getString("file_dir");
}
ConnBeanS.setStatementClose(Stmt);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return address ;
}
private void _initGoldServicePortTypeProxy() {
try {
String file_dir = getPortFile ();
EngineConfiguration config = new FileProvider(file_dir);
//EngineConfiguration config = new
FileProvider("D:\\1212\\webservice\\web_client\\src\\fstop\\ws\\wsclient_deploy.wsdd");
goldServicePortType = (new
bank.ws.GoldServiceLocator(config)).getGoldServiceHttpPort();
if (goldServicePortType != null) {
if (_endpoint != null)
((javax.xml.rpc.Stub)goldServicePortType)._setProperty("javax.xml.rpc.service.endpoint.address",
_endpoint);
else
_endpoint =
(String)((javax.xml.rpc.Stub)goldServicePortType)._getProperty("javax.xml.rpc.service.endpoint.address");
}
}
catch (javax.xml.rpc.ServiceException serviceException) {}
}
public String getEndpoint() {
return _endpoint;
}
public void setEndpoint(String endpoint) {
_endpoint = endpoint;
if (goldServicePortType != null)
((javax.xml.rpc.Stub)goldServicePortType)._setProperty("javax.xml.rpc.service.endpoint.address",
_endpoint);
}
public bank.ws.GoldServicePortType getGoldServicePortType() {
if (goldServicePortType == null)
_initGoldServicePortTypeProxy();
return goldServicePortType;
}
public bank.ws.GoldSell informGoldValue(bank.ws.Gold in0) throws
java.rmi.RemoteException{
if (goldServicePortType == null)
_initGoldServicePortTypeProxy();
return goldServicePortType.informGoldValue(in0);
}
}
//PWCallback.java
import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import org.apache.ws.security.WSPasswordCallback;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Date;
import javax.naming.*;
import java.util.Properties;
import java.text.*;
import javax.sql.*;
import userstar.*;
/**
* PWCallback for the Client
*/
public class PWCallback implements CallbackHandler {
/**
* @see
javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
*/
private Connection conn=null;
private Statement Stmt=null;
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException {
String sql="select * from tai_user where tai_user='008'";
String pwd="";
String user="";
try {
Stmt = ConnBeanS.getStatement();
ResultSet rs=Stmt.executeQuery(sql);
if(rs.first())
{
pwd = rs.getString("password");
user = rs.getString("user_name");
}
ConnBeanS.setStatementClose(Stmt);
}
catch(Exception e) {
e.printStackTrace();
}
for (int i = 0; i < callbacks.length; i++) {
if (callbacks[i] instanceof WSPasswordCallback) {
WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
// set the password given a username
if (user.equals(pc.getIdentifier())) {
pc.setPassword(pwd);
}
} else {
throw new UnsupportedCallbackException(callbacks[i],
"Unrecognized Callback");
}
}
}
}
//client_deploy.wsdd
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<requestFlow >
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="UsernameToken"/>
<parameter name="user" value="tom"/>
<parameter name="passwordCallbackClass" value="bank.ws.PWCallback"/>
<parameter name="passwordType" value="PasswordDigest"/>
</handler>
</requestFlow >
</globalConfiguration >
</deployment>
//wsdl
<wsdl:definitions xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ws.fstop"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"
targetNamespace="http://ws.fstop">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://ws.fstop">
<xsd:complexType name="Gold">
<xsd:all>
<xsd:element minOccurs="0" name="date" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="kind" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="curcd" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="cnt" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="time" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="goldProduct" nillable="true"
type="tns:ArrayOfGoldProduct"/> </xsd:all> </xsd:complexType>
<xsd:complexType name="ArrayOfGoldProduct"> <xsd:sequence> <xsd:element
maxOccurs="unbounded" minOccurs="0" name="GoldProduct" nillable="true"
type="tns:GoldProduct"/> </xsd:sequence> </xsd:complexType> <xsd:complexType
name="GoldProduct"> <xsd:all> <xsd:element minOccurs="0" name="currec"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="totrec"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="goodno"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="sell"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="sellt"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="buy"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="dpdiff"
nillable="true" type="xsd:string"/> </xsd:all> </xsd:complexType>
<xsd:element name="informGoldValue"> <xsd:complexType> <xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true"
type="tns:Gold"/> </xsd:sequence> </xsd:complexType> </xsd:element>
<xsd:complexType name="GoldSell"> <xsd:sequence> <xsd:element minOccurs="0"
name="msg_cod" nillable="true" type="xsd:string"/> <xsd:element
minOccurs="0" name="msg_desc" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="date" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="time" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="bank_no" nillable="true"
type="xsd:string"/> <xsd:element minOccurs="0" name="curcd" nillable="true"
type="xsd:string"/> <xsd:element minOccurs="0" name="goldSellProduct"
nillable="true" type="tns:ArrayOfGoldSellProduct"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfGoldSellProduct"> <xsd:sequence> <xsd:element
maxOccurs="unbounded" minOccurs="0" name="GoldSellProduct" nillable="true"
type="tns:GoldSellProduct"/> </xsd:sequence> </xsd:complexType>
<xsd:complexType name="GoldSellProduct"> <xsd:sequence> <xsd:element
minOccurs="0" name="sale_kind" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="goodno" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="unit_price" nillable="true"
type="xsd:string"/> <xsd:element minOccurs="0" name="sale_amt"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0"
name="tax_amt" nillable="true" type="xsd:string"/> <xsd:element
minOccurs="0" name="discount_amt" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="sale_q" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="sale_oz" nillable="true"
type="xsd:string"/> <xsd:element minOccurs="0" name="take_q" nillable="true"
type="xsd:string"/> <xsd:element minOccurs="0" name="unit_price_g"
nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="dpdiff"
nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType>
<xsd:element name="informGoldValueResponse"> <xsd:complexType>
<xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1"
name="informGoldValueResult" nillable="true" type="tns:GoldSell"/>
</xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
</wsdl:types> <wsdl:message name="informGoldValueResponse"> <wsdl:part
name="parameters" element="tns:informGoldValueResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="informGoldValueRequest"> <wsdl:part name="parameters"
element="tns:informGoldValue"></wsdl:part>
</wsdl:message>
<wsdl:portType name="GoldServicePortType"> <wsdl:operation
name="informGoldValue"> <wsdl:input name="informGoldValueRequest"
message="tns:informGoldValueRequest"></wsdl:input>
<wsdl:output name="informGoldValueResponse"
message="tns:informGoldValueResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GoldServiceHttpBinding" type="tns:GoldServicePortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="informGoldValue">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="informGoldValueRequest"> <wsdlsoap:body use="literal"/>
</wsdl:input> <wsdl:output name="informGoldValueResponse"> <wsdlsoap:body
use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding>
<wsdl:service name="GoldService"> <wsdl:port name="GoldServiceHttpPort"
binding="tns:GoldServiceHttpBinding">
<wsdlsoap:address
location="http://localhost/services/GoldService.GoldServiceHttpPort/"/>
</wsdl:port>
<wsdl:port name="GoldServiceHttpsPort" binding="tns:GoldServiceHttpBinding">
<wsdlsoap:address
location="https://localhost/services/GoldService.GoldServiceHttpsPort/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
//
all code ,but I must use to add BSJSSE code in these code thank
Best Regards
Hwangfu
--
Sent from: http://bouncy-castle.1462172.n4.nabble.com/Bouncy-Castle-Dev-f1462173.html