2014-02-27 110 views
5

我在做一個POC並嘗試使用Jenkins WebSphere部署者插件將EAR部署到WebSphere中。 WebSphere已啓用安全性。我試圖使用InstallCert.java將證書導入到cacerts文件中並使用它。仍然沒有運氣。Jenkins WebSphere部署者插件失敗

我是新手,歡迎任何幫助。請讓如有必要,我知道,連基本的一步:)

This is the screenshot of configuration. I have configured the right port number. I have copied the dummy jks files into the security directory from websphere

這是例外,我面對

Connection failed: com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: The system cannot create a SOAP connector to connect to host JHRPSTEST4 at port 8879. 
at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:634) 
at com.ibm.websphere.management.AdminClientFactory.access$000(AdminClientFactory.java:126) 
at com.ibm.websphere.management.AdminClientFactory$1.run(AdminClientFactory.java:209) 
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63) 
at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:205) 
at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.connect(WebSphereDeploymentService.java:234) 
at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin$DescriptorImpl.doTestConnection(WebSphereDeployerPlugin.java:325) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298) 
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161) 
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96) 
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) 
at org.kohsuke.stapler.Stapler.service(Stapler.java:225) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494) 
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) 
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
at org.eclipse.jetty.server.Server.handle(Server.java:370) 
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) 
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) 
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) 
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:456) 
... 66 more 
Caused by: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext); targetException=java.lang.IllegalArgumentException: Error opening socket: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)] 
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:422) 
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:222) 
... 71 more 
Caused by: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext); targetException=java.lang.IllegalArgumentException: Error opening socket: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)] 
at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:475) 
at org.apache.soap.rpc.Call.WASinvoke(Call.java:451) 
at com.ibm.ws.management.connector.soap.SOAPConnectorClient$4.run(SOAPConnectorClient.java:380) 
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) 
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:365) 
... 72 more 

回答

4

我在使用部署管理器和單個應用程序服務器節點獲取在「localhost」安裝的WAS7上運行的Websphere Deploy Plugin時遇到了問題。單元默認證書需要進入Dmgr信任庫。下面是對我有什麼什麼工作的總結:

1A - 獲取WebSphere單元寬證書

https://localhost.localdomain:9043/ibm/console/login.do?action=secure

View Page Info (Right-Click) > Security > View Certificate 
    Details Tab - Hit (Export...) 
    save to /tmp/was-cell-certificate 

1B - 獲取WebSphere單元寬證書。在一個更明確的方式]

WAS Console > Security > SSL Cert & key management 
Related Items : Key Stores and Certificates 
    Clink blue link: Cell Default Keystore 
    Additional Properties : Personal Certificates 
    Checkbox for (default) alias 
    Click Extract 
    Send to /tmp/was-cell-certificate 
    (OK) 

證書導入部署管理器信任庫

[[email protected] etc]# cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/etc 
[[email protected] etc]# keytool -importcert -keystore DummyClientTrustFile.jks -alias myserver -file /tmp/was-cell-certificate -storepass WebAS 
0

導入服務器證書以DummyClientTrustFile.jks。

3

你有複製以下從您的WebSphere JAR文件: - com.ibm.ws.admin.client_x。 yzjar - com.ibm.ws.orb_x.yzjar?

如果不是,請將插件的WEB-INF/lib文件夾中的文件複製並重新啓動Jenkins。

檢查WebSphere中的CONNECTOR_PORT是否與您在Jenkins作業中設置的值匹配。

我建議您將DummyClientKeyFile.jks和DummyClientTrustFile.jks從Websphere安裝複製到某個目錄(例如/ etc/jenkins)中的Jenkins機器。

在商店的文件路徑字段(您發佈的圖片)中配置商店路徑(帶有/ etc/jenkins文件夾)。

嘗試使用Google搜索這些商店的密碼,並將其設置爲密碼字段(您發佈的圖片有問題)。

嘗試部署這些更改後。

適用於我,但部署大型WAR文件(大約40MB)有時會使WebSphere崩潰。

較小的WARs工作正常。