You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Srinivas A (Created) (JIRA)" <ji...@apache.org> on 2012/01/23 18:06:40 UTC

[jira] [Created] (CXF-4053) Runtime error while connecting to the Secure(https) WebService from Apache CXF Client

Runtime error while connecting to the Secure(https) WebService from Apache CXF Client 
--------------------------------------------------------------------------------------

                 Key: CXF-4053
                 URL: https://issues.apache.org/jira/browse/CXF-4053
             Project: CXF
          Issue Type: Task
          Components: Core
    Affects Versions: 2.4.4
         Environment: Windows
            Reporter: Srinivas A


Hi 

I am working on Developing ApacheCXF Client for Secured(HTTPS) Axis1 WebService. The Axis1 Service Side people were given me the 3 keystore files(keystore.jks,cacerts,server_sankey.jks).I Loaded those 3 files in my client by giving the respective passwords.I did not get any error while loading the keystores but I got an error while invoking the service. I am sending my Client program as follows.But while working with HTTP it is working fine.Iam fighting with it for 7 days.Kindly solve my problem. My code is as follows 



import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.lang.reflect.InvocationHandler; 
import java.lang.reflect.Proxy; 
import java.net.URL; 
import java.security.GeneralSecurityException; 
import java.security.KeyStore; 
import java.security.KeyStoreException; 
import java.security.NoSuchAlgorithmException; 
import java.security.UnrecoverableKeyException; 
import java.security.cert.CertificateException; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.GregorianCalendar; 
import java.util.List; 
import java.util.Map; 

import javax.net.ssl.KeyManager; 
import javax.net.ssl.KeyManagerFactory; 
import javax.net.ssl.TrustManager; 
import javax.net.ssl.TrustManagerFactory; 
import javax.xml.bind.JAXBElement; 
import javax.xml.bind.JAXBException; 
import javax.xml.datatype.DatatypeConfigurationException; 
import javax.xml.datatype.DatatypeFactory; 
import javax.xml.datatype.XMLGregorianCalendar; 
import javax.xml.namespace.QName; 
import javax.xml.ws.BindingProvider; 

import org.apache.cxf.configuration.jsse.TLSClientParameters; 
import org.apache.cxf.configuration.security.FiltersType; 
import org.apache.cxf.endpoint.Client; 
import org.apache.cxf.frontend.ClientProxy; 
import org.apache.cxf.headers.Header; 
import org.apache.cxf.interceptor.LoggingInInterceptor; 
import org.apache.cxf.interceptor.LoggingOutInterceptor; 
import org.apache.cxf.jaxb.JAXBDataBinding; 
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; 
import org.apache.cxf.transport.http.HTTPConduit; 
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; 

import com.sun.xml.internal.ws.client.Stub; 
public class CustomerTest { 

public static void main(String[] args)throws Exception { 
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
factory.setServiceClass(InquiryPortType.class); 
factory.getInInterceptors().add(new LoggingInInterceptor()); 
factory.getOutInterceptors().add(new LoggingOutInterceptor()); 

factory.setAddress("https://192.168.1.45:4444/axis/customerProfile/inquiry/2010/11"); 

InquiryPortType service=(InquiryPortType) factory.create(); 

Client client = ClientProxy.getClient(service); 

HTTPConduit http = (HTTPConduit)client.getConduit(); 
TLSClientParameters tlsParams=new TLSClientParameters(); 

tlsParams.setSecureSocketProtocol("SSL"); 

String trustpass = "password"; 
TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore = KeyStore.getInstance("JKS"); 

File truststore = new File("C:\\repository\\server_sankey.jks"); 
keyStore.load(new FileInputStream(truststore), trustpass.toCharArray()); 
trustFactory.init(keyStore); 
TrustManager[] tm1 = trustFactory.getTrustManagers(); 
//tlsParams.setTrustManagers(tm1); 

trustpass="password"; 
TrustManagerFactory trustFactory1 = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore1 = KeyStore.getInstance("JKS"); 
File truststore1 = new File("C:\\repository\\keystore.jks"); 
keyStore1.load(new FileInputStream(truststore1), trustpass.toCharArray()); 
trustFactory1.init(keyStore1); 
TrustManager[] tm2 = trustFactory1.getTrustManagers(); 


trustpass="password"; 
TrustManagerFactory trustFactory2 = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore2 = KeyStore.getInstance("JKS"); 
File truststore2 = new File("C:\\repository\\cacerts"); 
keyStore2.load(new FileInputStream(truststore2), trustpass.toCharArray()); 
trustFactory2.init(keyStore2); 
TrustManager[] tm = trustFactory2.getTrustManagers(); 

List<TrustManager> trustList=new ArrayList<TrustManager>(); 
for (int i = 0; i < tm.length; i++) { 
trustList.add(tm[i]); 
} 
for (int i = 0; i < tm1.length; i++) { 
trustList.add(tm1[i]); 
} 
for (int i = 0; i < tm2.length; i++) { 
trustList.add(tm2[i]); 
} 

TrustManager[] tms=new TrustManager[trustList.size()]; 
tms=trustList.toArray(tms); 
tlsParams.setTrustManagers(tms); 
FiltersType cipher_suite_filter = new FiltersType(); 
cipher_suite_filter.getInclude().add("SSL_RSA_WITH_3DES_EDE_CBC_SHA"); 
cipher_suite_filter.getExclude().add(".*_DH_anon_.*"); 
tlsParams.setCipherSuitesFilter(cipher_suite_filter); 
http.setTlsClientParameters(tlsParams); 

HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
httpClientPolicy.setReceiveTimeout(10000); 
http.setClient(httpClientPolicy); 

SearchMidSessionReviewRequestType request=new SearchMidSessionReviewRequestType(); 
request.setBehaviorVersion(new Short("0")); 
SelectionCritieriaType selectionCritieriaType=new SelectionCritieriaType(); 
selectionCritieriaType.setAUNumber("12345"); 
request.setSelectionCriteria(selectionCritieriaType); 
InitiatorInformationType initiatorInformationType=new InitiatorInformationType(); 
ChannelInfoType channelInfoType=new ChannelInfoType(); 
channelInfoType.setInitiatorCompanyNbr("300"); 
initiatorInformationType.setChannelInfo(channelInfoType); 
request.setInitiatorInformation(initiatorInformationType); 
java.util.Map<String, Object> requestContext = 
((javax.xml.ws.BindingProvider)service).getRequestContext(); 
Header h1= new Header( 
new QName("http://service.wellsfargo.com/entity/message/2003/", "WFContext"), "decapitated", 
new JAXBDataBinding(WFContextType.class)); 

h1.setObject(getWFContext("22970", "Test")); 
List<Header> holder=new ArrayList<Header>(); 
holder.add(h1); 
((BindingProvider)service).getRequestContext().put(Header.HEADER_LIST,holder); 
GetCustomerInformationRequestType r=new GetCustomerInformationRequestType(); 
service.getCustomerInformation(r); 

} 
public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) 
{ 
DatatypeFactory df ; 
try 
{ 
df = DatatypeFactory.newInstance(); 
} catch (DatatypeConfigurationException dce) 
{ 
throw new IllegalStateException("Exception while obtaining DatatypeFactory instance", dce); 
} 
if (date == null) 
{ 
return null; 
} 
else 
{ 
GregorianCalendar gc = new GregorianCalendar(); 
gc.setTimeInMillis(date.getTime()); 
return df.newXMLGregorianCalendar(gc); 
} 
} 
public static URL getURL(String environment, String service) throws Exception { 
try { 
return new URL(environment + service); 
} 
catch (java.net.MalformedURLException e) { 
e.printStackTrace(); 
return null; 
} 
} 


public static WFContextType getWFContext(String initiatorId, String invokerId) throws Exception { 
WFContextType wfContext = new WFContextType(); 
wfContext.setActivitySourceId("KO"); 
wfContext.setActivitySourceIdType("FNC"); 
wfContext.setSubActivitySourceId("SimpleSoapClient"); 

wfContext.setBillingAU("47150"); 
wfContext.setCreationTimestamp(asXMLGregorianCalendar(new Date())); 

wfContext.setHostName(java.net.InetAddress.getLocalHost().getHostName()); 
wfContext.setInitiatorId(initiatorId); 
wfContext.setInitiatorIdType("HRIS"); 
wfContext.setInvokerId(invokerId); 
wfContext.setMessageId("searchMidSessionReview201202"); 
wfContext.setOriginatorId("501881234"); 
wfContext.setOriginatorIdType("TIN"); 

return wfContext; 
} 

} 

Error is: 
Jan 16, 2012 4:31:46 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 
INFO: Creating Service {http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService from class com.wellsfargo.service.provider.customerprofile.inquiry._2010._11.InquiryPortType 
Jan 16, 2012 4:32:03 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 
WARNING: Interceptor for {http://service.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService#{http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}getCustomerInformation has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: Marshalling Error: Received fatal alert: unexpected_message 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:257) 
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
at $Proxy57.getCustomerInformation(Unknown Source) 
at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
Caused by: javax.xml.bind.MarshalException 
- with linked exception: 
[javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
... 12 more 
Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
... 16 more 
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Marshalling Error: Received fatal alert: unexpected_message 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156) 
at $Proxy57.getCustomerInformation(Unknown Source) 
at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
Caused by: javax.xml.bind.MarshalException 
- with linked exception: 
[javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
... 2 more 
Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
... 16 more 


Waiting for your reply... 


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (CXF-4053) Runtime error while connecting to the Secure(https) WebService from Apache CXF Client

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-4053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-4053.
------------------------------

       Resolution: Incomplete
    Fix Version/s: Invalid


This really would need to go to the users@cxf.apache.org list with additional details about configuration and such.   We obviously have a lot of tests that use and configure https.  
                
> Runtime error while connecting to the Secure(https) WebService from Apache CXF Client 
> --------------------------------------------------------------------------------------
>
>                 Key: CXF-4053
>                 URL: https://issues.apache.org/jira/browse/CXF-4053
>             Project: CXF
>          Issue Type: Task
>          Components: Core
>    Affects Versions: 2.4.4
>         Environment: Windows
>            Reporter: Srinivas A
>             Fix For: Invalid
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Hi 
> I am working on Developing ApacheCXF Client for Secured(HTTPS) Axis1 WebService. The Axis1 Service Side people were given me the 3 keystore files(keystore.jks,cacerts,server_sankey.jks).I Loaded those 3 files in my client by giving the respective passwords.I did not get any error while loading the keystores but I got an error while invoking the service. I am sending my Client program as follows.But while working with HTTP it is working fine.Iam fighting with it for 7 days.Kindly solve my problem. My code is as follows 
> {code:java}
> import java.io.File; 
> import java.io.FileInputStream; 
> import java.io.FileNotFoundException; 
> import java.io.IOException; 
> import java.lang.reflect.InvocationHandler; 
> import java.lang.reflect.Proxy; 
> import java.net.URL; 
> import java.security.GeneralSecurityException; 
> import java.security.KeyStore; 
> import java.security.KeyStoreException; 
> import java.security.NoSuchAlgorithmException; 
> import java.security.UnrecoverableKeyException; 
> import java.security.cert.CertificateException; 
> import java.util.ArrayList; 
> import java.util.Date; 
> import java.util.GregorianCalendar; 
> import java.util.List; 
> import java.util.Map; 
> import javax.net.ssl.KeyManager; 
> import javax.net.ssl.KeyManagerFactory; 
> import javax.net.ssl.TrustManager; 
> import javax.net.ssl.TrustManagerFactory; 
> import javax.xml.bind.JAXBElement; 
> import javax.xml.bind.JAXBException; 
> import javax.xml.datatype.DatatypeConfigurationException; 
> import javax.xml.datatype.DatatypeFactory; 
> import javax.xml.datatype.XMLGregorianCalendar; 
> import javax.xml.namespace.QName; 
> import javax.xml.ws.BindingProvider; 
> import org.apache.cxf.configuration.jsse.TLSClientParameters; 
> import org.apache.cxf.configuration.security.FiltersType; 
> import org.apache.cxf.endpoint.Client; 
> import org.apache.cxf.frontend.ClientProxy; 
> import org.apache.cxf.headers.Header; 
> import org.apache.cxf.interceptor.LoggingInInterceptor; 
> import org.apache.cxf.interceptor.LoggingOutInterceptor; 
> import org.apache.cxf.jaxb.JAXBDataBinding; 
> import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; 
> import org.apache.cxf.transport.http.HTTPConduit; 
> import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; 
> import com.sun.xml.internal.ws.client.Stub; 
> public class CustomerTest { 
> public static void main(String[] args)throws Exception { 
> JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
> factory.setServiceClass(InquiryPortType.class); 
> factory.getInInterceptors().add(new LoggingInInterceptor()); 
> factory.getOutInterceptors().add(new LoggingOutInterceptor()); 
> factory.setAddress("https://192.168.1.45:4444/axis/customerProfile/inquiry/2010/11"); 
> InquiryPortType service=(InquiryPortType) factory.create(); 
> Client client = ClientProxy.getClient(service); 
> HTTPConduit http = (HTTPConduit)client.getConduit(); 
> TLSClientParameters tlsParams=new TLSClientParameters(); 
> tlsParams.setSecureSocketProtocol("SSL"); 
> String trustpass = "password"; 
> TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory 
> .getDefaultAlgorithm()); 
> KeyStore keyStore = KeyStore.getInstance("JKS"); 
> File truststore = new File("C:\\repository\\server_sankey.jks"); 
> keyStore.load(new FileInputStream(truststore), trustpass.toCharArray()); 
> trustFactory.init(keyStore); 
> TrustManager[] tm1 = trustFactory.getTrustManagers(); 
> //tlsParams.setTrustManagers(tm1); 
> trustpass="password"; 
> TrustManagerFactory trustFactory1 = TrustManagerFactory.getInstance(TrustManagerFactory 
> .getDefaultAlgorithm()); 
> KeyStore keyStore1 = KeyStore.getInstance("JKS"); 
> File truststore1 = new File("C:\\repository\\keystore.jks"); 
> keyStore1.load(new FileInputStream(truststore1), trustpass.toCharArray()); 
> trustFactory1.init(keyStore1); 
> TrustManager[] tm2 = trustFactory1.getTrustManagers(); 
> trustpass="password"; 
> TrustManagerFactory trustFactory2 = TrustManagerFactory.getInstance(TrustManagerFactory 
> .getDefaultAlgorithm()); 
> KeyStore keyStore2 = KeyStore.getInstance("JKS"); 
> File truststore2 = new File("C:\\repository\\cacerts"); 
> keyStore2.load(new FileInputStream(truststore2), trustpass.toCharArray()); 
> trustFactory2.init(keyStore2); 
> TrustManager[] tm = trustFactory2.getTrustManagers(); 
> List<TrustManager> trustList=new ArrayList<TrustManager>(); 
> for (int i = 0; i < tm.length; i++) { 
> trustList.add(tm[i]); 
> } 
> for (int i = 0; i < tm1.length; i++) { 
> trustList.add(tm1[i]); 
> } 
> for (int i = 0; i < tm2.length; i++) { 
> trustList.add(tm2[i]); 
> } 
> TrustManager[] tms=new TrustManager[trustList.size()]; 
> tms=trustList.toArray(tms); 
> tlsParams.setTrustManagers(tms); 
> FiltersType cipher_suite_filter = new FiltersType(); 
> cipher_suite_filter.getInclude().add("SSL_RSA_WITH_3DES_EDE_CBC_SHA"); 
> cipher_suite_filter.getExclude().add(".*_DH_anon_.*"); 
> tlsParams.setCipherSuitesFilter(cipher_suite_filter); 
> http.setTlsClientParameters(tlsParams); 
> HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
> httpClientPolicy.setReceiveTimeout(10000); 
> http.setClient(httpClientPolicy); 
> SearchMidSessionReviewRequestType request=new SearchMidSessionReviewRequestType(); 
> request.setBehaviorVersion(new Short("0")); 
> SelectionCritieriaType selectionCritieriaType=new SelectionCritieriaType(); 
> selectionCritieriaType.setAUNumber("12345"); 
> request.setSelectionCriteria(selectionCritieriaType); 
> InitiatorInformationType initiatorInformationType=new InitiatorInformationType(); 
> ChannelInfoType channelInfoType=new ChannelInfoType(); 
> channelInfoType.setInitiatorCompanyNbr("300"); 
> initiatorInformationType.setChannelInfo(channelInfoType); 
> request.setInitiatorInformation(initiatorInformationType); 
> java.util.Map<String, Object> requestContext = 
> ((javax.xml.ws.BindingProvider)service).getRequestContext(); 
> Header h1= new Header( 
> new QName("http://service.wellsfargo.com/entity/message/2003/", "WFContext"), "decapitated", 
> new JAXBDataBinding(WFContextType.class)); 
> h1.setObject(getWFContext("22970", "Test")); 
> List<Header> holder=new ArrayList<Header>(); 
> holder.add(h1); 
> ((BindingProvider)service).getRequestContext().put(Header.HEADER_LIST,holder); 
> GetCustomerInformationRequestType r=new GetCustomerInformationRequestType(); 
> service.getCustomerInformation(r); 
> } 
> public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) 
> { 
> DatatypeFactory df ; 
> try 
> { 
> df = DatatypeFactory.newInstance(); 
> } catch (DatatypeConfigurationException dce) 
> { 
> throw new IllegalStateException("Exception while obtaining DatatypeFactory instance", dce); 
> } 
> if (date == null) 
> { 
> return null; 
> } 
> else 
> { 
> GregorianCalendar gc = new GregorianCalendar(); 
> gc.setTimeInMillis(date.getTime()); 
> return df.newXMLGregorianCalendar(gc); 
> } 
> } 
> public static URL getURL(String environment, String service) throws Exception { 
> try { 
> return new URL(environment + service); 
> } 
> catch (java.net.MalformedURLException e) { 
> e.printStackTrace(); 
> return null; 
> } 
> } 
> public static WFContextType getWFContext(String initiatorId, String invokerId) throws Exception { 
> WFContextType wfContext = new WFContextType(); 
> wfContext.setActivitySourceId("KO"); 
> wfContext.setActivitySourceIdType("FNC"); 
> wfContext.setSubActivitySourceId("SimpleSoapClient"); 
> wfContext.setBillingAU("47150"); 
> wfContext.setCreationTimestamp(asXMLGregorianCalendar(new Date())); 
> wfContext.setHostName(java.net.InetAddress.getLocalHost().getHostName()); 
> wfContext.setInitiatorId(initiatorId); 
> wfContext.setInitiatorIdType("HRIS"); 
> wfContext.setInvokerId(invokerId); 
> wfContext.setMessageId("searchMidSessionReview201202"); 
> wfContext.setOriginatorId("501881234"); 
> wfContext.setOriginatorIdType("TIN"); 
> return wfContext; 
> } 
> } 
> {code}
> Error is: 
> {code}
> Jan 16, 2012 4:31:46 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 
> INFO: Creating Service {http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService from class com.wellsfargo.service.provider.customerprofile.inquiry._2010._11.InquiryPortType 
> Jan 16, 2012 4:32:03 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 
> WARNING: Interceptor for {http://service.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService#{http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}getCustomerInformation has thrown exception, unwinding now 
> org.apache.cxf.interceptor.Fault: Marshalling Error: Received fatal alert: unexpected_message 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:257) 
> at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
> at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
> at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
> at $Proxy57.getCustomerInformation(Unknown Source) 
> at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
> Caused by: javax.xml.bind.MarshalException 
> - with linked exception: 
> [javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
> at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
> ... 12 more 
> Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
> at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
> at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
> at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
> at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
> at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
> at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
> at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
> at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
> at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
> ... 16 more 
> Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Marshalling Error: Received fatal alert: unexpected_message 
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156) 
> at $Proxy57.getCustomerInformation(Unknown Source) 
> at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
> Caused by: javax.xml.bind.MarshalException 
> - with linked exception: 
> [javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
> at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
> at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
> at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
> at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
> ... 2 more 
> Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
> at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
> at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
> at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
> at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
> at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
> at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
> at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
> at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
> at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
> ... 16 more 
> {code}
> Waiting for your reply... 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (CXF-4053) Runtime error while connecting to the Secure(https) WebService from Apache CXF Client

Posted by "Daniel Kulp (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-4053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp updated CXF-4053:
-----------------------------

    Description: 
Hi 

I am working on Developing ApacheCXF Client for Secured(HTTPS) Axis1 WebService. The Axis1 Service Side people were given me the 3 keystore files(keystore.jks,cacerts,server_sankey.jks).I Loaded those 3 files in my client by giving the respective passwords.I did not get any error while loading the keystores but I got an error while invoking the service. I am sending my Client program as follows.But while working with HTTP it is working fine.Iam fighting with it for 7 days.Kindly solve my problem. My code is as follows 

{code:java}

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.lang.reflect.InvocationHandler; 
import java.lang.reflect.Proxy; 
import java.net.URL; 
import java.security.GeneralSecurityException; 
import java.security.KeyStore; 
import java.security.KeyStoreException; 
import java.security.NoSuchAlgorithmException; 
import java.security.UnrecoverableKeyException; 
import java.security.cert.CertificateException; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.GregorianCalendar; 
import java.util.List; 
import java.util.Map; 

import javax.net.ssl.KeyManager; 
import javax.net.ssl.KeyManagerFactory; 
import javax.net.ssl.TrustManager; 
import javax.net.ssl.TrustManagerFactory; 
import javax.xml.bind.JAXBElement; 
import javax.xml.bind.JAXBException; 
import javax.xml.datatype.DatatypeConfigurationException; 
import javax.xml.datatype.DatatypeFactory; 
import javax.xml.datatype.XMLGregorianCalendar; 
import javax.xml.namespace.QName; 
import javax.xml.ws.BindingProvider; 

import org.apache.cxf.configuration.jsse.TLSClientParameters; 
import org.apache.cxf.configuration.security.FiltersType; 
import org.apache.cxf.endpoint.Client; 
import org.apache.cxf.frontend.ClientProxy; 
import org.apache.cxf.headers.Header; 
import org.apache.cxf.interceptor.LoggingInInterceptor; 
import org.apache.cxf.interceptor.LoggingOutInterceptor; 
import org.apache.cxf.jaxb.JAXBDataBinding; 
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; 
import org.apache.cxf.transport.http.HTTPConduit; 
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; 

import com.sun.xml.internal.ws.client.Stub; 
public class CustomerTest { 

public static void main(String[] args)throws Exception { 
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
factory.setServiceClass(InquiryPortType.class); 
factory.getInInterceptors().add(new LoggingInInterceptor()); 
factory.getOutInterceptors().add(new LoggingOutInterceptor()); 

factory.setAddress("https://192.168.1.45:4444/axis/customerProfile/inquiry/2010/11"); 

InquiryPortType service=(InquiryPortType) factory.create(); 

Client client = ClientProxy.getClient(service); 

HTTPConduit http = (HTTPConduit)client.getConduit(); 
TLSClientParameters tlsParams=new TLSClientParameters(); 

tlsParams.setSecureSocketProtocol("SSL"); 

String trustpass = "password"; 
TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore = KeyStore.getInstance("JKS"); 

File truststore = new File("C:\\repository\\server_sankey.jks"); 
keyStore.load(new FileInputStream(truststore), trustpass.toCharArray()); 
trustFactory.init(keyStore); 
TrustManager[] tm1 = trustFactory.getTrustManagers(); 
//tlsParams.setTrustManagers(tm1); 

trustpass="password"; 
TrustManagerFactory trustFactory1 = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore1 = KeyStore.getInstance("JKS"); 
File truststore1 = new File("C:\\repository\\keystore.jks"); 
keyStore1.load(new FileInputStream(truststore1), trustpass.toCharArray()); 
trustFactory1.init(keyStore1); 
TrustManager[] tm2 = trustFactory1.getTrustManagers(); 


trustpass="password"; 
TrustManagerFactory trustFactory2 = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore2 = KeyStore.getInstance("JKS"); 
File truststore2 = new File("C:\\repository\\cacerts"); 
keyStore2.load(new FileInputStream(truststore2), trustpass.toCharArray()); 
trustFactory2.init(keyStore2); 
TrustManager[] tm = trustFactory2.getTrustManagers(); 

List<TrustManager> trustList=new ArrayList<TrustManager>(); 
for (int i = 0; i < tm.length; i++) { 
trustList.add(tm[i]); 
} 
for (int i = 0; i < tm1.length; i++) { 
trustList.add(tm1[i]); 
} 
for (int i = 0; i < tm2.length; i++) { 
trustList.add(tm2[i]); 
} 

TrustManager[] tms=new TrustManager[trustList.size()]; 
tms=trustList.toArray(tms); 
tlsParams.setTrustManagers(tms); 
FiltersType cipher_suite_filter = new FiltersType(); 
cipher_suite_filter.getInclude().add("SSL_RSA_WITH_3DES_EDE_CBC_SHA"); 
cipher_suite_filter.getExclude().add(".*_DH_anon_.*"); 
tlsParams.setCipherSuitesFilter(cipher_suite_filter); 
http.setTlsClientParameters(tlsParams); 

HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
httpClientPolicy.setReceiveTimeout(10000); 
http.setClient(httpClientPolicy); 

SearchMidSessionReviewRequestType request=new SearchMidSessionReviewRequestType(); 
request.setBehaviorVersion(new Short("0")); 
SelectionCritieriaType selectionCritieriaType=new SelectionCritieriaType(); 
selectionCritieriaType.setAUNumber("12345"); 
request.setSelectionCriteria(selectionCritieriaType); 
InitiatorInformationType initiatorInformationType=new InitiatorInformationType(); 
ChannelInfoType channelInfoType=new ChannelInfoType(); 
channelInfoType.setInitiatorCompanyNbr("300"); 
initiatorInformationType.setChannelInfo(channelInfoType); 
request.setInitiatorInformation(initiatorInformationType); 
java.util.Map<String, Object> requestContext = 
((javax.xml.ws.BindingProvider)service).getRequestContext(); 
Header h1= new Header( 
new QName("http://service.wellsfargo.com/entity/message/2003/", "WFContext"), "decapitated", 
new JAXBDataBinding(WFContextType.class)); 

h1.setObject(getWFContext("22970", "Test")); 
List<Header> holder=new ArrayList<Header>(); 
holder.add(h1); 
((BindingProvider)service).getRequestContext().put(Header.HEADER_LIST,holder); 
GetCustomerInformationRequestType r=new GetCustomerInformationRequestType(); 
service.getCustomerInformation(r); 

} 
public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) 
{ 
DatatypeFactory df ; 
try 
{ 
df = DatatypeFactory.newInstance(); 
} catch (DatatypeConfigurationException dce) 
{ 
throw new IllegalStateException("Exception while obtaining DatatypeFactory instance", dce); 
} 
if (date == null) 
{ 
return null; 
} 
else 
{ 
GregorianCalendar gc = new GregorianCalendar(); 
gc.setTimeInMillis(date.getTime()); 
return df.newXMLGregorianCalendar(gc); 
} 
} 
public static URL getURL(String environment, String service) throws Exception { 
try { 
return new URL(environment + service); 
} 
catch (java.net.MalformedURLException e) { 
e.printStackTrace(); 
return null; 
} 
} 


public static WFContextType getWFContext(String initiatorId, String invokerId) throws Exception { 
WFContextType wfContext = new WFContextType(); 
wfContext.setActivitySourceId("KO"); 
wfContext.setActivitySourceIdType("FNC"); 
wfContext.setSubActivitySourceId("SimpleSoapClient"); 

wfContext.setBillingAU("47150"); 
wfContext.setCreationTimestamp(asXMLGregorianCalendar(new Date())); 

wfContext.setHostName(java.net.InetAddress.getLocalHost().getHostName()); 
wfContext.setInitiatorId(initiatorId); 
wfContext.setInitiatorIdType("HRIS"); 
wfContext.setInvokerId(invokerId); 
wfContext.setMessageId("searchMidSessionReview201202"); 
wfContext.setOriginatorId("501881234"); 
wfContext.setOriginatorIdType("TIN"); 

return wfContext; 
} 

} 
{code}


Error is: 
{code}
Jan 16, 2012 4:31:46 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 
INFO: Creating Service {http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService from class com.wellsfargo.service.provider.customerprofile.inquiry._2010._11.InquiryPortType 
Jan 16, 2012 4:32:03 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 
WARNING: Interceptor for {http://service.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService#{http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}getCustomerInformation has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: Marshalling Error: Received fatal alert: unexpected_message 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:257) 
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
at $Proxy57.getCustomerInformation(Unknown Source) 
at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
Caused by: javax.xml.bind.MarshalException 
- with linked exception: 
[javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
... 12 more 
Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
... 16 more 
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Marshalling Error: Received fatal alert: unexpected_message 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156) 
at $Proxy57.getCustomerInformation(Unknown Source) 
at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
Caused by: javax.xml.bind.MarshalException 
- with linked exception: 
[javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
... 2 more 
Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
... 16 more 
{code}

Waiting for your reply... 


  was:
Hi 

I am working on Developing ApacheCXF Client for Secured(HTTPS) Axis1 WebService. The Axis1 Service Side people were given me the 3 keystore files(keystore.jks,cacerts,server_sankey.jks).I Loaded those 3 files in my client by giving the respective passwords.I did not get any error while loading the keystores but I got an error while invoking the service. I am sending my Client program as follows.But while working with HTTP it is working fine.Iam fighting with it for 7 days.Kindly solve my problem. My code is as follows 



import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.lang.reflect.InvocationHandler; 
import java.lang.reflect.Proxy; 
import java.net.URL; 
import java.security.GeneralSecurityException; 
import java.security.KeyStore; 
import java.security.KeyStoreException; 
import java.security.NoSuchAlgorithmException; 
import java.security.UnrecoverableKeyException; 
import java.security.cert.CertificateException; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.GregorianCalendar; 
import java.util.List; 
import java.util.Map; 

import javax.net.ssl.KeyManager; 
import javax.net.ssl.KeyManagerFactory; 
import javax.net.ssl.TrustManager; 
import javax.net.ssl.TrustManagerFactory; 
import javax.xml.bind.JAXBElement; 
import javax.xml.bind.JAXBException; 
import javax.xml.datatype.DatatypeConfigurationException; 
import javax.xml.datatype.DatatypeFactory; 
import javax.xml.datatype.XMLGregorianCalendar; 
import javax.xml.namespace.QName; 
import javax.xml.ws.BindingProvider; 

import org.apache.cxf.configuration.jsse.TLSClientParameters; 
import org.apache.cxf.configuration.security.FiltersType; 
import org.apache.cxf.endpoint.Client; 
import org.apache.cxf.frontend.ClientProxy; 
import org.apache.cxf.headers.Header; 
import org.apache.cxf.interceptor.LoggingInInterceptor; 
import org.apache.cxf.interceptor.LoggingOutInterceptor; 
import org.apache.cxf.jaxb.JAXBDataBinding; 
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; 
import org.apache.cxf.transport.http.HTTPConduit; 
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; 

import com.sun.xml.internal.ws.client.Stub; 
public class CustomerTest { 

public static void main(String[] args)throws Exception { 
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
factory.setServiceClass(InquiryPortType.class); 
factory.getInInterceptors().add(new LoggingInInterceptor()); 
factory.getOutInterceptors().add(new LoggingOutInterceptor()); 

factory.setAddress("https://192.168.1.45:4444/axis/customerProfile/inquiry/2010/11"); 

InquiryPortType service=(InquiryPortType) factory.create(); 

Client client = ClientProxy.getClient(service); 

HTTPConduit http = (HTTPConduit)client.getConduit(); 
TLSClientParameters tlsParams=new TLSClientParameters(); 

tlsParams.setSecureSocketProtocol("SSL"); 

String trustpass = "password"; 
TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore = KeyStore.getInstance("JKS"); 

File truststore = new File("C:\\repository\\server_sankey.jks"); 
keyStore.load(new FileInputStream(truststore), trustpass.toCharArray()); 
trustFactory.init(keyStore); 
TrustManager[] tm1 = trustFactory.getTrustManagers(); 
//tlsParams.setTrustManagers(tm1); 

trustpass="password"; 
TrustManagerFactory trustFactory1 = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore1 = KeyStore.getInstance("JKS"); 
File truststore1 = new File("C:\\repository\\keystore.jks"); 
keyStore1.load(new FileInputStream(truststore1), trustpass.toCharArray()); 
trustFactory1.init(keyStore1); 
TrustManager[] tm2 = trustFactory1.getTrustManagers(); 


trustpass="password"; 
TrustManagerFactory trustFactory2 = TrustManagerFactory.getInstance(TrustManagerFactory 
.getDefaultAlgorithm()); 
KeyStore keyStore2 = KeyStore.getInstance("JKS"); 
File truststore2 = new File("C:\\repository\\cacerts"); 
keyStore2.load(new FileInputStream(truststore2), trustpass.toCharArray()); 
trustFactory2.init(keyStore2); 
TrustManager[] tm = trustFactory2.getTrustManagers(); 

List<TrustManager> trustList=new ArrayList<TrustManager>(); 
for (int i = 0; i < tm.length; i++) { 
trustList.add(tm[i]); 
} 
for (int i = 0; i < tm1.length; i++) { 
trustList.add(tm1[i]); 
} 
for (int i = 0; i < tm2.length; i++) { 
trustList.add(tm2[i]); 
} 

TrustManager[] tms=new TrustManager[trustList.size()]; 
tms=trustList.toArray(tms); 
tlsParams.setTrustManagers(tms); 
FiltersType cipher_suite_filter = new FiltersType(); 
cipher_suite_filter.getInclude().add("SSL_RSA_WITH_3DES_EDE_CBC_SHA"); 
cipher_suite_filter.getExclude().add(".*_DH_anon_.*"); 
tlsParams.setCipherSuitesFilter(cipher_suite_filter); 
http.setTlsClientParameters(tlsParams); 

HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
httpClientPolicy.setReceiveTimeout(10000); 
http.setClient(httpClientPolicy); 

SearchMidSessionReviewRequestType request=new SearchMidSessionReviewRequestType(); 
request.setBehaviorVersion(new Short("0")); 
SelectionCritieriaType selectionCritieriaType=new SelectionCritieriaType(); 
selectionCritieriaType.setAUNumber("12345"); 
request.setSelectionCriteria(selectionCritieriaType); 
InitiatorInformationType initiatorInformationType=new InitiatorInformationType(); 
ChannelInfoType channelInfoType=new ChannelInfoType(); 
channelInfoType.setInitiatorCompanyNbr("300"); 
initiatorInformationType.setChannelInfo(channelInfoType); 
request.setInitiatorInformation(initiatorInformationType); 
java.util.Map<String, Object> requestContext = 
((javax.xml.ws.BindingProvider)service).getRequestContext(); 
Header h1= new Header( 
new QName("http://service.wellsfargo.com/entity/message/2003/", "WFContext"), "decapitated", 
new JAXBDataBinding(WFContextType.class)); 

h1.setObject(getWFContext("22970", "Test")); 
List<Header> holder=new ArrayList<Header>(); 
holder.add(h1); 
((BindingProvider)service).getRequestContext().put(Header.HEADER_LIST,holder); 
GetCustomerInformationRequestType r=new GetCustomerInformationRequestType(); 
service.getCustomerInformation(r); 

} 
public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) 
{ 
DatatypeFactory df ; 
try 
{ 
df = DatatypeFactory.newInstance(); 
} catch (DatatypeConfigurationException dce) 
{ 
throw new IllegalStateException("Exception while obtaining DatatypeFactory instance", dce); 
} 
if (date == null) 
{ 
return null; 
} 
else 
{ 
GregorianCalendar gc = new GregorianCalendar(); 
gc.setTimeInMillis(date.getTime()); 
return df.newXMLGregorianCalendar(gc); 
} 
} 
public static URL getURL(String environment, String service) throws Exception { 
try { 
return new URL(environment + service); 
} 
catch (java.net.MalformedURLException e) { 
e.printStackTrace(); 
return null; 
} 
} 


public static WFContextType getWFContext(String initiatorId, String invokerId) throws Exception { 
WFContextType wfContext = new WFContextType(); 
wfContext.setActivitySourceId("KO"); 
wfContext.setActivitySourceIdType("FNC"); 
wfContext.setSubActivitySourceId("SimpleSoapClient"); 

wfContext.setBillingAU("47150"); 
wfContext.setCreationTimestamp(asXMLGregorianCalendar(new Date())); 

wfContext.setHostName(java.net.InetAddress.getLocalHost().getHostName()); 
wfContext.setInitiatorId(initiatorId); 
wfContext.setInitiatorIdType("HRIS"); 
wfContext.setInvokerId(invokerId); 
wfContext.setMessageId("searchMidSessionReview201202"); 
wfContext.setOriginatorId("501881234"); 
wfContext.setOriginatorIdType("TIN"); 

return wfContext; 
} 

} 

Error is: 
Jan 16, 2012 4:31:46 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 
INFO: Creating Service {http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService from class com.wellsfargo.service.provider.customerprofile.inquiry._2010._11.InquiryPortType 
Jan 16, 2012 4:32:03 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 
WARNING: Interceptor for {http://service.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService#{http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}getCustomerInformation has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: Marshalling Error: Received fatal alert: unexpected_message 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:257) 
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
at $Proxy57.getCustomerInformation(Unknown Source) 
at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
Caused by: javax.xml.bind.MarshalException 
- with linked exception: 
[javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
... 12 more 
Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
... 16 more 
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Marshalling Error: Received fatal alert: unexpected_message 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156) 
at $Proxy57.getCustomerInformation(Unknown Source) 
at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
Caused by: javax.xml.bind.MarshalException 
- with linked exception: 
[javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
... 2 more 
Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
... 16 more 


Waiting for your reply... 


    
> Runtime error while connecting to the Secure(https) WebService from Apache CXF Client 
> --------------------------------------------------------------------------------------
>
>                 Key: CXF-4053
>                 URL: https://issues.apache.org/jira/browse/CXF-4053
>             Project: CXF
>          Issue Type: Task
>          Components: Core
>    Affects Versions: 2.4.4
>         Environment: Windows
>            Reporter: Srinivas A
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Hi 
> I am working on Developing ApacheCXF Client for Secured(HTTPS) Axis1 WebService. The Axis1 Service Side people were given me the 3 keystore files(keystore.jks,cacerts,server_sankey.jks).I Loaded those 3 files in my client by giving the respective passwords.I did not get any error while loading the keystores but I got an error while invoking the service. I am sending my Client program as follows.But while working with HTTP it is working fine.Iam fighting with it for 7 days.Kindly solve my problem. My code is as follows 
> {code:java}
> import java.io.File; 
> import java.io.FileInputStream; 
> import java.io.FileNotFoundException; 
> import java.io.IOException; 
> import java.lang.reflect.InvocationHandler; 
> import java.lang.reflect.Proxy; 
> import java.net.URL; 
> import java.security.GeneralSecurityException; 
> import java.security.KeyStore; 
> import java.security.KeyStoreException; 
> import java.security.NoSuchAlgorithmException; 
> import java.security.UnrecoverableKeyException; 
> import java.security.cert.CertificateException; 
> import java.util.ArrayList; 
> import java.util.Date; 
> import java.util.GregorianCalendar; 
> import java.util.List; 
> import java.util.Map; 
> import javax.net.ssl.KeyManager; 
> import javax.net.ssl.KeyManagerFactory; 
> import javax.net.ssl.TrustManager; 
> import javax.net.ssl.TrustManagerFactory; 
> import javax.xml.bind.JAXBElement; 
> import javax.xml.bind.JAXBException; 
> import javax.xml.datatype.DatatypeConfigurationException; 
> import javax.xml.datatype.DatatypeFactory; 
> import javax.xml.datatype.XMLGregorianCalendar; 
> import javax.xml.namespace.QName; 
> import javax.xml.ws.BindingProvider; 
> import org.apache.cxf.configuration.jsse.TLSClientParameters; 
> import org.apache.cxf.configuration.security.FiltersType; 
> import org.apache.cxf.endpoint.Client; 
> import org.apache.cxf.frontend.ClientProxy; 
> import org.apache.cxf.headers.Header; 
> import org.apache.cxf.interceptor.LoggingInInterceptor; 
> import org.apache.cxf.interceptor.LoggingOutInterceptor; 
> import org.apache.cxf.jaxb.JAXBDataBinding; 
> import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; 
> import org.apache.cxf.transport.http.HTTPConduit; 
> import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; 
> import com.sun.xml.internal.ws.client.Stub; 
> public class CustomerTest { 
> public static void main(String[] args)throws Exception { 
> JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
> factory.setServiceClass(InquiryPortType.class); 
> factory.getInInterceptors().add(new LoggingInInterceptor()); 
> factory.getOutInterceptors().add(new LoggingOutInterceptor()); 
> factory.setAddress("https://192.168.1.45:4444/axis/customerProfile/inquiry/2010/11"); 
> InquiryPortType service=(InquiryPortType) factory.create(); 
> Client client = ClientProxy.getClient(service); 
> HTTPConduit http = (HTTPConduit)client.getConduit(); 
> TLSClientParameters tlsParams=new TLSClientParameters(); 
> tlsParams.setSecureSocketProtocol("SSL"); 
> String trustpass = "password"; 
> TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory 
> .getDefaultAlgorithm()); 
> KeyStore keyStore = KeyStore.getInstance("JKS"); 
> File truststore = new File("C:\\repository\\server_sankey.jks"); 
> keyStore.load(new FileInputStream(truststore), trustpass.toCharArray()); 
> trustFactory.init(keyStore); 
> TrustManager[] tm1 = trustFactory.getTrustManagers(); 
> //tlsParams.setTrustManagers(tm1); 
> trustpass="password"; 
> TrustManagerFactory trustFactory1 = TrustManagerFactory.getInstance(TrustManagerFactory 
> .getDefaultAlgorithm()); 
> KeyStore keyStore1 = KeyStore.getInstance("JKS"); 
> File truststore1 = new File("C:\\repository\\keystore.jks"); 
> keyStore1.load(new FileInputStream(truststore1), trustpass.toCharArray()); 
> trustFactory1.init(keyStore1); 
> TrustManager[] tm2 = trustFactory1.getTrustManagers(); 
> trustpass="password"; 
> TrustManagerFactory trustFactory2 = TrustManagerFactory.getInstance(TrustManagerFactory 
> .getDefaultAlgorithm()); 
> KeyStore keyStore2 = KeyStore.getInstance("JKS"); 
> File truststore2 = new File("C:\\repository\\cacerts"); 
> keyStore2.load(new FileInputStream(truststore2), trustpass.toCharArray()); 
> trustFactory2.init(keyStore2); 
> TrustManager[] tm = trustFactory2.getTrustManagers(); 
> List<TrustManager> trustList=new ArrayList<TrustManager>(); 
> for (int i = 0; i < tm.length; i++) { 
> trustList.add(tm[i]); 
> } 
> for (int i = 0; i < tm1.length; i++) { 
> trustList.add(tm1[i]); 
> } 
> for (int i = 0; i < tm2.length; i++) { 
> trustList.add(tm2[i]); 
> } 
> TrustManager[] tms=new TrustManager[trustList.size()]; 
> tms=trustList.toArray(tms); 
> tlsParams.setTrustManagers(tms); 
> FiltersType cipher_suite_filter = new FiltersType(); 
> cipher_suite_filter.getInclude().add("SSL_RSA_WITH_3DES_EDE_CBC_SHA"); 
> cipher_suite_filter.getExclude().add(".*_DH_anon_.*"); 
> tlsParams.setCipherSuitesFilter(cipher_suite_filter); 
> http.setTlsClientParameters(tlsParams); 
> HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
> httpClientPolicy.setReceiveTimeout(10000); 
> http.setClient(httpClientPolicy); 
> SearchMidSessionReviewRequestType request=new SearchMidSessionReviewRequestType(); 
> request.setBehaviorVersion(new Short("0")); 
> SelectionCritieriaType selectionCritieriaType=new SelectionCritieriaType(); 
> selectionCritieriaType.setAUNumber("12345"); 
> request.setSelectionCriteria(selectionCritieriaType); 
> InitiatorInformationType initiatorInformationType=new InitiatorInformationType(); 
> ChannelInfoType channelInfoType=new ChannelInfoType(); 
> channelInfoType.setInitiatorCompanyNbr("300"); 
> initiatorInformationType.setChannelInfo(channelInfoType); 
> request.setInitiatorInformation(initiatorInformationType); 
> java.util.Map<String, Object> requestContext = 
> ((javax.xml.ws.BindingProvider)service).getRequestContext(); 
> Header h1= new Header( 
> new QName("http://service.wellsfargo.com/entity/message/2003/", "WFContext"), "decapitated", 
> new JAXBDataBinding(WFContextType.class)); 
> h1.setObject(getWFContext("22970", "Test")); 
> List<Header> holder=new ArrayList<Header>(); 
> holder.add(h1); 
> ((BindingProvider)service).getRequestContext().put(Header.HEADER_LIST,holder); 
> GetCustomerInformationRequestType r=new GetCustomerInformationRequestType(); 
> service.getCustomerInformation(r); 
> } 
> public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) 
> { 
> DatatypeFactory df ; 
> try 
> { 
> df = DatatypeFactory.newInstance(); 
> } catch (DatatypeConfigurationException dce) 
> { 
> throw new IllegalStateException("Exception while obtaining DatatypeFactory instance", dce); 
> } 
> if (date == null) 
> { 
> return null; 
> } 
> else 
> { 
> GregorianCalendar gc = new GregorianCalendar(); 
> gc.setTimeInMillis(date.getTime()); 
> return df.newXMLGregorianCalendar(gc); 
> } 
> } 
> public static URL getURL(String environment, String service) throws Exception { 
> try { 
> return new URL(environment + service); 
> } 
> catch (java.net.MalformedURLException e) { 
> e.printStackTrace(); 
> return null; 
> } 
> } 
> public static WFContextType getWFContext(String initiatorId, String invokerId) throws Exception { 
> WFContextType wfContext = new WFContextType(); 
> wfContext.setActivitySourceId("KO"); 
> wfContext.setActivitySourceIdType("FNC"); 
> wfContext.setSubActivitySourceId("SimpleSoapClient"); 
> wfContext.setBillingAU("47150"); 
> wfContext.setCreationTimestamp(asXMLGregorianCalendar(new Date())); 
> wfContext.setHostName(java.net.InetAddress.getLocalHost().getHostName()); 
> wfContext.setInitiatorId(initiatorId); 
> wfContext.setInitiatorIdType("HRIS"); 
> wfContext.setInvokerId(invokerId); 
> wfContext.setMessageId("searchMidSessionReview201202"); 
> wfContext.setOriginatorId("501881234"); 
> wfContext.setOriginatorIdType("TIN"); 
> return wfContext; 
> } 
> } 
> {code}
> Error is: 
> {code}
> Jan 16, 2012 4:31:46 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 
> INFO: Creating Service {http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService from class com.wellsfargo.service.provider.customerprofile.inquiry._2010._11.InquiryPortType 
> Jan 16, 2012 4:32:03 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 
> WARNING: Interceptor for {http://service.com/provider/customerProfile/inquiry/2010/11/}InquiryPortTypeService#{http://service.wellsfargo.com/provider/customerProfile/inquiry/2010/11/}getCustomerInformation has thrown exception, unwinding now 
> org.apache.cxf.interceptor.Fault: Marshalling Error: Received fatal alert: unexpected_message 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:257) 
> at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
> at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
> at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
> at $Proxy57.getCustomerInformation(Unknown Source) 
> at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
> Caused by: javax.xml.bind.MarshalException 
> - with linked exception: 
> [javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
> at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
> ... 12 more 
> Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
> at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
> at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
> at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
> at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
> at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
> at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
> at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
> at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
> at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
> ... 16 more 
> Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Marshalling Error: Received fatal alert: unexpected_message 
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156) 
> at $Proxy57.getCustomerInformation(Unknown Source) 
> at com.customerProfile.inquiry.CustomerTest.main(CustomerTest.java:161) 
> Caused by: javax.xml.bind.MarshalException 
> - with linked exception: 
> [javax.net.ssl.SSLException: Received fatal alert: unexpected_message] 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:333) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) 
> at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:550) 
> at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:232) 
> at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) 
> at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:110) 
> at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
> at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) 
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) 
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) 
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88) 
> at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) 
> ... 2 more 
> Caused by: javax.net.ssl.SSLException: Received fatal alert: unexpected_message 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
> at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) 
> at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) 
> at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
> at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
> at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014) 
> at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1367) 
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1309) 
> at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer(AbstractThresholdOutputStream.java:89) 
> at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:63) 
> at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:395) 
> at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:163) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.doText(UTF8XmlOutput.java:306) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecl(UTF8XmlOutput.java:220) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeNsDecls(UTF8XmlOutput.java:200) 
> at com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:159) 
> at com.sun.xml.bind.v2.runtime.output.NamespaceContextImpl$Element.startElement(NamespaceContextImpl.java:483) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.endNamespaceDecls(XMLSerializer.java:283) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:674) 
> at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:150) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) 
> at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) 
> at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) 
> at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) 
> ... 16 more 
> {code}
> Waiting for your reply... 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira