Skip to end of metadata
Go to start of metadata

Plugin Information

View WebSphere Deployer on the plugin site for more information.

This is a collection of two separate plugins that provide deployment functionality to most versions of IBM WebSphere Application Server, IBM WebSphere Portal and IBM WebSphere Liberty Profile.

Attention Jenkins Customers: Support for this plugin is not provided by Cloudbees. If you're interested in enterprise support, contact me directly.

Please add comments if your issues are addressed on your version of WebSphere, note the fixes proposed in the Change Log below.

Plugin Features

  • Deployment to a running remote or local instance of WebSphere 7.0.x - 9.0.x 
    • Note: WebSphere 6.0.x - WebSphere 8.0.x (4/30/2018) is no longer supported by IBM
  • Deployment to a running remote or local instance of WebSphere Liberty Edition 8.x.x
  • Support for deployments when SSL is activated on WebSphere (Global Security)
  • Support for most versions of WebSphere (Portal,Liberty,ND,Extreme Scale, Express, Standard, etc...)
  • Support for updating JSR286/JSR186 Portlets
  • Support for deploying to different WebSphere instances/types per build
  • Support for cluster, node, cell, and server level deployments
  • Support for pre-compiling JSPs on WebSphere during deployment (When stress testing as part of build process)
  • Support for disabling JSP reloading (When stress testing as part of build process)
  • Support for not starting application after deployment
  • Support for updating an existing application (to prevent losing application settings after redeployment)
  • Supports fully stopping, uninstalling, installing and starting an application during deployment process
  • Support for using a single deployment manager across multiple clusters or servers
  • Support for virtual hosts when deploying EAR files
  • Smart detection of existing deployed application state (to prevent failures when a system admin stops your application without you knowing)

Frequently Asked Questions (FAQs)

See the most frequently asked questions and issues

Common Configurations

Scenario 1: Single instance of WebSphere

Scenario 2: A clustered deployment on WebSphere ND

** Note: Same application with the same context root can be
deployed using the same deployment manager as long as
you use different application names in the job configuration **

 

Deploying portlets to IBM WebSphere Portal (Updates existing deployed portlets, themes and skins are not supported)
Deploying to IBM WebSphere Application Server
Deploying to IBM WebSphere Liberty Server

Required Libraries For Deployments To IBM WebSphere Application Server

Jar File

Source Location

Destination

Required

com.ibm.ws.admin.client_*.jar

$WAS_INSTALL_ROOT/runtimes

$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/lib

Yes

com.ibm.ws.orb_*.jar

$WAS_INSTALL_ROOT/runtimes

$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/lib

Yes (otherwise 'No' if running under IBM J9 JRE, WAS v7 doesn't need it either)

com.ibm.ws.security.crypto.jar$WAS_INSTALL_ROOT/plugins$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/libYes (for v1.6.0+ of this plugin)
com.ibm.ws.webservices.thinclient_*.jar$WAS_INSTALL_ROOT/runtimes$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/libMaybe (Depends if application uses web services)

Required Libraries For Deployments To IBM WebSphere Liberty Profile

Jar File

Source Location

Destination

Required

com.ibm.websphere.appserver.api.basics_*.jar

$LIBERTY_INSTALL_ROOT/dev/api/ibm

$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/lib

Yes

com.ibm.websphere.appserver.api.endpoint_*.jar

$LIBERTY_INSTALL_ROOT/dev/api/ibm

$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/lib

Yes

com.ibm.websphere.appserver.api.restConnector_*.jar

$LIBERTY_INSTALL_ROOT/dev/api/ibm

$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/lib

Yes

restConnector.jar

$LIBERTY_INSTALL_ROOT/clients

$USER_HOME/.jenkins/plugins/websphere-deployer/WEB-INF/lib

Yes


Issues or Feature Requests

Getting issues...

Roadmap

  • Add Pipeline Support
  • Add support for Jenkins slaves
  • Add rollback support for install/update failures to prevent breaking applications for QA/UAT team
  • Add promotion support for other environments (QA,STAGE,PRE-PROD, etc.) without repackaging EAR/WAR
  • Add support for multiple target deployments
  • Fix path issue when locating artifacts to deploy
  • Provide support for Liberty Profile (support confirmed, will be available soon)
  • Provide support for EAR/WAR/WAB/OSGI deployments to Liberty Profile (support confirmed, will be available soon)
  • Remove external dependency on client jars for each configuration (to simplify initial configuration) (not possible)
  • Send notifications when application fails to start (outside of build process)
  • Add cluster support (release v1.3)
  • Support for WAR deployments on WebSphere Application Servers (Full Profile)

Change Log

Version 1.6.0 (release)   

Added support for earlier versions of Jenkins (version 1.608) 
Added support for listing server targets
Fixes for multithreading to speed up deployments
Includes all beta changes listed below

Version 1.4.8 (beta) - WAS Full Profile Updates 

Option to trust SSL certificates and hostnames (fix for PKIX issues)
Attempt to allow for deployment across multiple environments

Version 1.4.4 (beta) - WAS Full Profile Updates

Fix for virtual host configuration when deploying EAR artifacts
Added support for SharedLib when deploying EAR artifacts

Version 1.4.3 (beta) - WAS Full Profile Updates

Added support for virtual host configuration when deploying EAR artifacts

Version 1.4.1 (beta) - WAS Full Profile Updates

Fix for those of us who don't use global security
Attempt to fix ObjectName issue (Appears to be 2 classloaders loading the ObjectName, who knows why this is happening on some machines)
Support for deployments when build is unstable

Version 1.4.0 (beta) - WAS Full Profile Updates

Added reloading support
Fixed JSP reloading issue
Fixed classloader order bug
Added classloader policy suppoort
Added context override for generated EARs
Added support for multiple target deployments (cluster or multiple nodes)
Changed UI layout

Version 1.3.4 (release) - WAS Full Profile Updates

Several bug fixes and enhancements (see details below)
Added "operations" to allow for either updating or complete re-installation of artifacts
Added support for path variables (contribution)
Tested support for updating Portlets on a remote WebSphere Portal Instance

Version 1.3.3 (beta) - WAS Full Profile Updates

Disabled host verification for complex deployment environments.
Provided option for verbose logging.

Version 1.3.2 (beta) - WAS Full Profile Updates

Added more connector options.
Fixed SSL caching so multiple deployments to different servers should work.

Version 1.3.1 (beta) - WAS Full Profile Updates

Added support for updating applications instead of complete reinstallation of artifacts.

Version 1.3 (beta) - WAS Full Profile Updates

Fix for generated EARs
Java EE7 support
Timeout parameter for large EAR deployments (contribution)
Classloader policy support
Context fix for generated EAR (contribution)
WebSphere ND support when deploying through Deployment Manager
Cluster support (experimental)

Version 1.2 - Liberty / WAS Full Profile Updates

Support for WebSphere Liberty Profile
Fixed path issues with WebSphere Application Server (full profile)

Version 1.1

Initial release performed

Version 1.0

Beta Testing Passed for WebSphere v8.5.5 for both remote and local deployments

64 Comments

  1. Hi, I have an issue with the step "Required Libraries For Deployments To IBM WebSphere Application Server"

    I am looking in $WAS_INSTALL_ROOT/runtimes, namely "/opt/WebSphere8.5/AppServer/runtimes"

    and there is only one jar present, it is ejb3exceptions.jar. Is there somewhere else I can get the required jars?

    many thanks

    rejoyce

  2. Hello, I have a question. Is it possible to deploy same application on more than one server on the same node? I.e. can I list more than one server in 'Target Server' edit box - 'MyAppServer01' and 'MyWebServer01'?

    1. This is not supported at this time.

  3. Hi,

    I am able to do remote deployment using this Websphere Deployer Plugin in WAS 8.5.

    The steps used are

    a) Stops the existing application, b) Uninstall the existing ear, c) Installs the new ear and  d) starts the application if the Start Application check box was checked in the jenkins job configuration.

    While it uninstalls the existing ear it deletes the Virtual Host and Shared Library entries in the existing application. 

    It would be helpful if we get the answers for the below questions.

    a) Can we able to only update the ear without uninstalling the existing ear?

    b) Can we able to pass/configure the Virtual Host and Shared Library Path entries from jenkins.

    Thank you.

    1. Add this as a feature request so it can be put in the pipeline.

    2. Implemented in v1.3.3 (beta). Please test and validate.

      1. Greg, I am using v1.3.4 but I can not pass/configure the Virtual Host and Library Path entries in jenkins

        with new application installation. 

        Thank you

        1. DHARAN CHANDAR M This should be working in v1.6.1

  4. m r

    Hi, we have following problem when we click "Test Connection" on WebSphere Network Deployment 8.5.0 which requires authentication:
    The certificate issued by CN=xxxx.yyyy.com, OU=Root Certificate, OU=xxxxCell01, OU=xxxxCellManager01, O=IBM, C=US is not trusted; internal cause is: 
    java.security.cert.CertPathValidatorException: Certificate chaining error 
    We imported server certificate in cacerts in JRE that Jenkins is running against. How to import trust file in ../jre/lib/security/cacerts? We got error "java.lang.Exception: Input not an X.509 certificate" when we try to import it.
    Hi, we have following problem when we click "Test Connection" on WebSphere Network Deployment 8.5.0 which requires authentication:

    The certificate issued by CN=xxxx.yyyy.com, OU=Root Certificate, OU=xxxxCell01, OU=xxxxCellManager01, O=IBM, C=US is not trusted; internal cause is: 

    java.security.cert.CertPathValidatorException: Certificate chaining error 

    We imported server certificate in cacerts in JRE that Jenkins is running against. How to import trust file in ../jre/lib/security/cacerts? We got error "java.lang.Exception: Input not an X.509 certificate" when we try to import it.

    Thanks.

    1. Input not an X.509 certificate means your certificate is likely in DER format. You need to convert your certificate to PEM format by using:openssl x509 -inform der -in certificate.cer -out certificate.pem

      Then you should be able to import your cert into cacerts.

  5. Hello,

    I am trying to test connection on a WebSphere network Deployment 6.1.0 with security and receiving the next message:
    Caused by: com.ibm.websphere.management.exception.ConnectorNotAvailableException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.ibm.websphere.ssl.protocol.SSLSocketFactory; targetException=java.lang.IllegalArgumentException: Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.ibm.websphere.ssl.protocol.SSLSocketFactory

    the jenkins is based on sun_jdk1.8.0_45 and the WebSphere is running with J2RE 1.5.0 IBM.
    I added the jars com.ibm.ws.admin.client_6.1.0.jar,com.ibm.ws.webservices.thinclient_6.1.0.jar,com.ibm.jaxws.thinclient_6.1.0.jar, jre - IBM to the path: tomcat/webapps/plugins/websphere-deployer/WEB-INF/lib/

    Thanks.

    1. Shay,

      WebSphere v6.1 is no longer supported by IBM. It was End of Life on September 30th, 2013. Can you possibly upgrade to a newer version of WebSphere?

  6. Hello!

    The project I'm working on is basically Unstable all the time (don't ask, I'm as horrified as you are). At first, I didn't know that the plugin would only run on Successful builds (documentation improvement opportunity?), but while browsing the recent Github commits, I saw that a feature has been added to optionally run after Unstable builds. Unfortunately, your 1.4.0 beta .hpi doesn't include this change. Could you publish a new beta artifact that includes this feature?

    Thanks!

  7. Hello, 

    I am using WebSphere Deployer plugin to deploy to remote WebSphere instance which is federated into a deployment manager. I have added the wsadmin jars. I have also imported the DMGR admin console certificate into Jenkins JRE cacerts. and also imported WebSphere DMGR certificate into the cell trust store as recommended by another blog. Still I am getting below error. Server is up and running. I am able to manually deploy the application. Also I am able to ping from Jenkins server to the WAS server. Any help is appreciated.

     

    Test Connection
    Connection failed: com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: The system cannot create a SOAP connector to connect to host xxxxx at port xxxx.
    at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:635)
    at com.ibm.websphere.management.AdminClientFactory.access$000(AdminClientFactory.java:127)
    at com.ibm.websphere.management.AdminClientFactory$1.run(AdminClientFactory.java:210)
    at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)
    at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:206)
    at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.connect(WebSphereDeploymentService.java:388)
    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin$DescriptorImpl.doTestConnection(WebSphereDeployerPlugin.java:379)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    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:121)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
    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:132)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:123)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
    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:1482)
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
    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(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:457)
    ... 83 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:429)
    at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:228)
    ... 88 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:487)
    at com.ibm.ws.management.connector.soap.SOAPConnectorClient$4.run(SOAPConnectorClient.java:387)
    at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
    at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:372)
    ... 89 more

    1. It's working now. I was using server 1 SOAP port instead of DMGR port. 

  8. Hi,

    1)  If I create a trust keystore, and import the remote WAS self signed certificate into it, and set the "Client Truststore File Path" and "Client Truststore Password" to this keystore, do I still need to import the cert into the JRE cacerts?

    2)  I have imported the remote WAS self signed cert into the JRE caerts store, I was able to test connection, but I got the following "the trustAnchors parameter must be non-empty" error when I tried to install an EAR, any idea?

    com.ibm.websphere.management.exception.ConnectorException: ADMC0009E: The system failed to make the SOAP RPC call: getServerMBean at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplateOnce(SOAPConnectorClient.java:894) at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplate(SOAPConnectorClient.java:689) at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplate(SOAPConnectorClient.java:679) at com.ibm.ws.management.connector.soap.SOAPConnectorClient.getServerMBean(SOAPConnectorClient.java:614) at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invoke(SOAPConnectorClient.java:531) at com.sun.proxy.$Proxy70.getServerMBean(Unknown Source) at com.ibm.ws.management.AdminClientImpl.getServerMBean(AdminClientImpl.java:127) at com.ibm.websphere.management.application.AppManagementProxy.<init>(AppManagementProxy.java:129) at com.ibm.websphere.management.application.AppManagementProxy.getJMXProxyForClient(AppManagementProxy.java:90) at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.isArtifactInstalled(WebSphereDeploymentService.java:354) at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.stopArtifact(WebSphereDeployerPlugin.java:243) at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:198) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:785) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:726) at hudson.model.Build$BuildExecution.post2(Build.java:185) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671) at hudson.model.Run.execute(Run.java:1766) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:410)
    Caused by: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.io.IOException: Exception during sslSocket.startHandshake: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty; targetException=java.lang.IllegalArgumentException: Error opening socket: java.io.IOException: Exception during sslSocket.startHandshake: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty] at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:475) at org.apache.soap.rpc.Call.WASinvoke(Call.java:510) at com.ibm.ws.management.connector.soap.SOAPConnectorClient$8.run(SOAPConnectorClient.java:852) at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplateOnce(SOAPConnectorClient.java:845) ... 20 more
    thanks

    java9394

    1. I copied over the dummy keystore and truststore from the remote server again, no need to import the self signed cert into the JRE cacerts keystore.  It's working fine now.

      thanks.

      java9394

  9. Hi All,

    1.4 beta says "Added support for multiple target deployments (cluster or multiple nodes)".

    Can anyone help me how to put the entry for cluster/multiple nodes/target.

    for single server i believe the following syntax works:

    Deployment Targets : WebSphere:cell=MyCell,node=MyNode,server=MyServer

    1. Ansuman,

      Specify the syntax for deployment targets on multiple lines, something like the following should work:

      WebSphere:cell=cell01,node=node01,server=server1
      WebSphere:cell=cell01,node=node02,server=server1

      or to deploy to a cluster use:

      WebSphere:cell=cell01,cluster=PortalCluster

  10. hi
    i found the bollow problem about version 1.4 beta.
    1)i choose operations is "install/update Application(s)" to deploy ear, but ear cookies setting is recover after deploy, could not keep on session id when update ear.
    so, i would like this update operation is "Replace the entire application" or "Replace,add,or delete multiple files" to update ear?

    2)there is a exception when start application on SystemOut.log, how to resolve it.please refter to as bellow.

    AppManagement W ADMA0116W: Unable to start: xxxxx_ear using: ......: Exception thrown in RequiredModelMBean while trying to invoke operation startApplication
    .....
    Caused by: com.ibm.ws.exception.RedundantStateChangeException: Composition Unit WebSphere:cuname=xxxxx_ear,cuedition=BASE already started


  11. Hi all, i just have a quick question. By following set up guide it is all good until the aftifact update. I copied all required .jar files and imported cacerts. I can test the connection web sphere (i am using WS 7). All is working fine. But when plugin reach a step to check application installed on WS i am getting the following error: Any ideas? Thanks in advance

    Connecting to IBM WebSphere Application Server...

    The following artifacts will be deployed in this order...

    -------------------------------------------

    XXX_123.ear

    -------------------------------------------

    Error deploying to IBM WebSphere Application Server: org.jenkinsci.plugins.websphere.services.deployment.DeploymentServiceException: Could not determine if artifact 'XXX' is installed: javax.management.ObjectName cannot be cast to javax.management.ObjectName

    at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.isArtifactInstalled(WebSphereDeploymentService.java:357)

    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.stopArtifact(WebSphereDeployerPlugin.java:243)

    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:198)

    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)

    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:785)

    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:757)

    at hudson.model.Build$BuildExecution.post2(Build.java:183)

    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:706)

    at hudson.model.Run.execute(Run.java:1703)

    at hudson.matrix.MatrixRun.run(MatrixRun.java:146)

    at hudson.model.ResourceController.execute(ResourceController.java:88)

    at hudson.model.Executor.run(Executor.java:231)

    Build step 'Deploy To IBM WebSphere Application Server' changed build result to FAILURE

    Finished: FAILURE

  12. Hi Greg,

    I am a new user to Jenkins. I am trying to configure continuous portlet deployment in WebSphere Portal Server 8.0.0.1.  I have downloaded the plugin websphere-deployer-v1.4.0.hpi (beta) from this website and installed it in my Jenkins. Now I am trying configure post build action to deploy the portlet's in WebSphere Portal Server 8.0.0.1, I can see only two option there, one is Deploy to WebSphere Application Server and second is Deploy to WebSphere Liberty Profile.

    Can you please guide me with the recipe  to deploy in WebSphere Portal Server 8.0.0.1.

    1. Currently you must use the lastest Beta version to deploy to portal.

      This will allow you to update existing (deployed) portlets in a cluster or non-cluster environment.

      1) Select, "Deploy to WebSphere Application Server"
      2) Make sure the application name in the plugin configuration matches the application name of the portlet defined in WebSphere Portal (i.e. PA_SOMEEAR)
      3) Make sure the context in your portlet matches the context of the initially deployed portlet (i.e. /wps/somecontext)

      You must use v1.4.1+ for this functionality

  13. Dear all,

       Can I change WAS admin console port from 9043 to others? In job configuration pages I found textfield for SOAP port only.

    My development team use one server for both SIT and UAT environment.  They set 29043 for SIT  and 9043 for UAT 

  14. I have copied the DummyClient keystore file to Jenkins JRE path, and i imported the certificate to <JRE_Path>.

    (The certificate i imported, i got when i access the websphere through https connection with 10203 port number)

    Some of the Port number configured in websphere are as, wc_adminhost_source - 10203; soap_connector_address - 10205

    When i am trying to deploy, jenkins goes into loop and display message "Deploying 'HUB' to IBM WebSphere Application Server"; after that nothing happens.

    I don't know what is client keystore and trust store password is, as it was third person who installed webspherer. Some body please guide me where i am doing wrong or missing some steps, also which port number should i use to deploy.

    NOTE: without giving keystore and trust store password, my connection is successful on testing through jenkins on port number 10205. With 10203 port number i am getting error as SOAP can't be created.....

  15. Hi Greg ,

     

    I am using jenkins 2.70 and WDP 1.3.4 to deploy an EAR file into WAS 8.5.5.0.

    When I set the Application class loader policy to "PARENT_LAST " in Jenkins WDP 1.3.4, it was not set properly in my Webshphere application server 8.5.5.0,it was set to Default class loader policy and also "Override class reloading settings for Web and EJB modules " checkbox was selected.

    Because of this my application did not start. Please find attached the screenshot of my jenkins configuarion and my Websphere class loader policy after deployment through jenkins

    Can you please let me know what i am missing and how to correct this issuse,   as well as is there a way to avoid the selection of "Override class reloading settings for Web and EJB modules " through jenkins

  16. Mistakenly i uploaded a wrong web sphere classloader policy image, here is the correct one

  17. hi,

    We are using Jenkins 2.60.1, Websphere Deployer Plugin 1.3.4 with WAS7 and deployment is failing.

    We are able to connect with Test connection with the dmgr using the SOAP.

    We have a cluster of 2 nodes.

    Configured following values

    Target Node - which is the dmgr node

    Target Cell - which is dmgr cell

    Target Cluster - given the cluster name which has 2 nodes.

    Deployment Timeout(minutes) - numeric values

     

    the deployment is failing , any help is appreciated.

     

    regards

    Mahesh

  18. Hi Greg,

     

    i am using Websphere Deployer Plugin 1.4.0(Beta), while installing i am getting below exception

    Error deploying to IBM WebSphere Application Server: org.jenkinsci.plugins.websphere.services.deployment.DeploymentServiceException: Could not determine if artifact 'XXXXXXX' is installed: AdminException: ADMA0089E: The AppManagement MBean is not found.
    at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.isArtifactInstalled(WebSphereDeploymentService.java:412)
    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.stopArtifact(WebSphereDeployerPlugin.java:330)
    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:206)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:736)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:682)
    at hudson.model.Build$BuildExecution.post2(Build.java:186)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:627)
    at hudson.model.Run.execute(Run.java:1749)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:419)

    Performing rollback of 'XXXXXXX'
    WARNING: Artifact doesn't exist rollback repository
    Build step 'Deploy To IBM WebSphere Application Server' changed build result to FAILURE
    Finished: FAILURE

     

    i have added latest IBM V8 jars and added trusted certificate in cacerts, still getting issue.

     

    can you please hep me on why i am getting this issue and how can i fix.

  19. Hi Plyush,

    I m also facing the same issue did you find any fix for this.

    Thank You

    Vinay

  20. Hi Greg,

    HELP HELP HELP!

    Using:

    Plugin Version: 1.4.7 beta

    WAS version: 8.5.5

    If we use 1.3.5 version plugin, we don't have option to give the name of application and virtual host. So I am using this version of plugin. It is able to stop the running application but unable to uninstall and update new version of application. Getting the following error.

    Can you help me in fixing this issue.

    Thank you.

    Error  

    Connecting to IBM WebSphere Application Server...
    The following artifacts will be deployed in this order...
    -------------------------------------------
    /var/lib/jenkins/workspace/app-service/app-service.ear-2.9.0.ear Last modified on Dec 06, 2017 15:44:22
    /var/lib/jenkins/workspace/appointment/app-service.ear-2.9.0.ear Last modified on Dec 09, 2017 15:05:09
    -------------------------------------------
    Artifact is being deployed with Virtual Host: app-vh
    Stopping Old Application 'app-service'...
    Updating 'app-service' on IBM WebSphere Application Server
    Deploying to targets: WebSphere:cell=[ws-cell],cluster=[App-Cluster]
    UninstallApplication] ADMA5104I: The server index entry for WebSphere:cell=ws-cell,node=xxxxx1+WebSphere:cell=ws-cell,node=xxxxx2 is updated successfully.[InProgress]
    UninstallApplication] ADMA5102I: The configuration data for app-service from the configuration repository is deleted successfully.[InProgress]
    UninstallApplication] ADMA5011I: The cleanup of the temp directory for application app-service is complete.[InProgress]
    UninstallApplication] ADMA5106I: Application app-service uninstalled successfully.[Completed]
    InstallApplication] ADMA5011I: The cleanup of the temp directory for application app-service is complete.[InProgress]
    InstallApplication] ADMA5069E: The installation of application app-service failed.  This application was in the middle of a full update and therefore is uninstalled from the configuration session.  Discard your current configuration session immediately to recover the application.  Do not save changes to the WebSphere Application Server configuration repository.  The application is not uninstalled from this repository.  Until the current configuration session is discarded you do not see this application in the current session.[Failed]
    Error deploying to IBM WebSphere Application Server: org.jenkinsci.plugins.websphere.services.deployment.DeploymentServiceException: Failed to update artifact: Application not successfully updated: 
    ADMA5104I: The server index entry for WebSphere:cell=ws-cell,node=xxxxx1+WebSphere:cell=ws-cell,node=xxxxx2 is updated successfully.
    ADMA5102I: The configuration data for app-service from the configuration repository is deleted successfully.
    ADMA5011I: The cleanup of the temp directory for application app-service is complete.
    ADMA5106I: Application app-service uninstalled successfully.
    ADMA5011I: The cleanup of the temp directory for application app-service is complete.
    ADMA5069E: The installation of application app-service failed.  This application was in the middle of a full update and therefore is uninstalled from the configuration session.  Discard your current configuration session immediately to recover the application.  Do not save changes to the WebSphere Application Server configuration repository.  The application is not uninstalled from this repository.  Until the current configuration session is discarded you do not see this application in the current session.
    	at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.updateArtifact(WebSphereDeploymentService.java:340)
    	at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.updateArtifact(WebSphereDeployerPlugin.java:354)
    	at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:229)
    	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
    	at hudson.model.Build$BuildExecution.post2(Build.java:186)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
    	at hudson.model.Run.execute(Run.java:1752)
    	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    	at hudson.model.ResourceController.execute(ResourceController.java:97)
    	at hudson.model.Executor.run(Executor.java:429)
    
    Performing rollback of 'App Service'
    WARNING: Artifact doesn't exist rollback repository
    Build step 'Deploy To IBM WebSphere Application Server' changed build result to FAILURE
    Finished: FAILURE
    1. Virtual host is not currently working in any of the beta releases. It's a work in progress...

      1. Hi Greg,

        Thanks for the immediate reply.

        I am able to deploy and start the application using 1.3.4 plugin. But it is creating the new application with the name specified in POM.xml and with default_host, instead of updating the existing application. The name of application in POM.xml and in WebSphere are different.

        Can you please suggest me a way to pass the Name of the application and Virtual Host from Jenkins to update the existing application in WebSphere.

        Thank you. 

        1. You can't at this point.

          1. Ok, Thank you.

            Can you please suggest me any other way to update the existing application in WebSphere from Jenkins. 

            1. In version 1.6.0 you can now specify virtual_host. This should address your virtual host issue.

  21. Hello,

    When I build my job,  I always get below error. Can you take a look? How can I fix it? thx.

     

    BUILD SUCCESSFUL in 9s

    2 actionable tasks: 2 executed

    Build step 'Invoke Gradle script' changed build result to SUCCESS

    Connecting to IBM WebSphere Liberty Profile...

    The following artifacts will be deployed in this order...

    -------------------------------------------

    JavaHelloWorldApp.war

    -------------------------------------------

    Stopping Old Application 'JavaHelloWorldApp'...

    Error deploying to IBM WebSphere Liberty Profile: org.jenkinsci.plugins.websphere.services.deployment.DeploymentServiceException: Failed to stop artifact: null

    at org.jenkinsci.plugins.websphere.services.deployment.LibertyDeploymentService.stopArtifact(LibertyDeploymentService.java:78)

    at org.jenkinsci.plugins.websphere_deployer.LibertyDeployerPlugin.stopArtifact(LibertyDeployerPlugin.java:155)

    at org.jenkinsci.plugins.websphere_deployer.LibertyDeployerPlugin.perform(LibertyDeployerPlugin.java:97)

    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)

    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)

    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)

    at hudson.model.Build$BuildExecution.post2(Build.java:185)

    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)

    at hudson.model.Run.execute(Run.java:1766)

    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)

    at hudson.model.ResourceController.execute(ResourceController.java:98)

    at hudson.model.Executor.run(Executor.java:410)

    1. I tried Version 1.3.4 (release)  and websphere-deployer-v1.4.7.hpi (beta), but got the same error. ..

      1. Is the application already install on WAS Liberty? Is it trying to stop the application before it's even deployed. Please advise.

  22. Hi.

    My problem is that took so much time the plugin to start the application,

     

    [1/18/18 1:09:33:724 MST] 00001ce8 SystemOut     O PLGC0048I: The propagation of the plug-in configuration file is complete for the Web server. dst24lp07Cell01.AppSrv01.webserver1.
    [1/18/18 1:27:32:058 MST] 0000228a AdminHelper   A   ADMN1008I: An attempt is made to start the ippf-aide.ear application. (User ID =com:389/.com)

    Is any clue why takes so much time ?

     

    1. Try increasing the deployment timeout in the plugin configuration.

      1. Thank you Greg to answer my question, I have changed the deployment timeout from 5 to 10. I'll try to run again the job and hope that this working.

         

      2. I have run the job, and it looks that is not working this increase in the timeout, the job is still running:

         

        AppDistribution] WebSphere:cell=,node=AppSrv01,distribution=false,expansion=notprocessing[InProgress]
        AppDistribution] ADMA5011I: The cleanup of the temp directory for application  is complete.[InProgress]
        AppDistributionNode] ADMA5072I: Distribution status check completed for application .[Completed]
        Server Composite: WebSphere:cell=,node=AppSrv01,distribution=false,expansion=notprocessing
        Distributed to WebSphere:cell=,node=AppSrv01,distribution=false,expansion=notprocessing: false
        1. If you deploy manually, how long does it typically take?

      3. Hi Greg and all that supported this forum.

        For your reference we have discovered that the timeout parameter works at inverse, when we increased to 10 minutes the deploy took 30 minutes, when we increased to 20 minutes the deploy took 1 hour, after this discovering, we decided reduce the timeout parameter to 1 minute and the job took around 4 minutes, we decided try with 0 and run the job again, the job took 50 seconds.

        The default timeout parameter in 5 minutes affected our job.

        Thank you Greg for give us a clue about the issue.

        Regards.

  23. We are getting the follow message when we turned security on in websphere and test a connection to our websphere server.  We are running version 1.3.4 of the plugin

     

    Connection failed: com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: The system cannot create a SOAP connector to connect to host server at port 8883.  at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:635)  at com.ibm.websphere.management.AdminClientFactory.access$000(AdminClientFactory.java:127)  at com.ibm.websphere.management.AdminClientFactory$1.run(AdminClientFactory.java:210)  at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)  at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:206)  at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.connect(WebSphereDeploymentService.java:388)  at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin$DescriptorImpl.doTestConnection(WebSphereDeployerPlugin.java:379)  at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)  at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)  at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)  at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)  at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)  at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)  at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)  at org.kohsuke.stapler.Stapler.service(Stapler.java:238)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)  at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:860)  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)  at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)  at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)  at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)  at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)  at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)  at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)  at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)  at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)  at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)  at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)  at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)  at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)  at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)  at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)  at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)  at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)  at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)  at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)  at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)  at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)  at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)  at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)  at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)  at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)  at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)  at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)  at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)  at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)  at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)  at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)  at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)  at org.eclipse.jetty.server.Server.handle(Server.java:530)  at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)  at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)  at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)  at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)  at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)  at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)  at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)  at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)  at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)  at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)  at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.reflect.InvocationTargetException  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:457)  ... 92 more Caused by: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.io.IOException: Exception during sslSocket.startHandshake: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; targetException=java.lang.IllegalArgumentException: Error opening socket: java.io.IOException: Exception during sslSocket.startHandshake: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]  at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:429)  at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:228)  ... 97 more Caused by: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.io.IOException: Exception during sslSocket.startHandshake: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; targetException=java.lang.IllegalArgumentException: Error opening socket: java.io.IOException: Exception during sslSocket.startHandshake: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]  at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:475)  at org.apache.soap.rpc.Call.WASinvoke(Call.java:510)  at com.ibm.ws.management.connector.soap.SOAPConnectorClient$4.run(SOAPConnectorClient.java:387)  at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)  at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:372)

    1. Please consider upgrading to v1.6.1 and select the "Trust SSL Certificates" option in the Job Configuration....

  24. Hi Everyone,

    I am new to Jenkins. Does anybody here faced the same problem below? Or any idea how to fix this? Would really appreciate the help....

    I am using:

    WebSphere Plugin 1.6.1
    Jenkins 2.121.1


    java.lang.ClassNotFoundException: com.ibm.websphere.management.exception.AdminException
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1374)
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1327)
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1080)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:809)
    Caused: java.lang.NoClassDefFoundError: com.ibm.websphere.management.exception.AdminException
    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin$DescriptorImpl.doTestConnection(WebSphereDeployerPlugin.java:596)
    at java.lang.invoke.VirtualHandle.invokeExact_thunkArchetype_L(VirtualHandle.java:122)
    at java.lang.invoke.AsTypeHandle.invokeExact_thunkArchetype_X(AsTypeHandle.java:34)
    at java.lang.invoke.InvokeGenericHandle.invokeExact_thunkArchetype_X(InvokeGenericHandle.java:71)
    at java.lang.invoke.SpreadHandle.invokeExact_thunkArchetype_X(SpreadHandle.java:77)
    at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:542)
    at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    Caused: javax.servlet.ServletException
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:765)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)

    1. Please follow the instructions above on setting up the plugin. This error happens when you don't copy the WebSphere jars to the correct location in Jenkins. The WebSphere jars are required for the WDP plugin to know how to access WebSphere specific libraries. Hope this helps.

  25. Hi,

    I am getting the successful message in Jenkins as below as if the app/package has been successfully deployed. The WebSphere Admin console also shows that the app has been deployed.

    But I do NOT see the actual binary in the WebSphere "profiles\<node>\installedApps" folder (for a manual installation, the folder and binaries are created). When I try to load the app/page, I am getting the "file not found" error.

    [6/20/18 15:24:54:002 PDT] 000000b7 SystemOut O 2018-06-20 15:24:54.002 ERROR 7128 --- [ebContainer : 7] com.ibm.ws.webcontainer.util : SRVE8043E: An IOException occured searching jarFile [] for fileName [/legacy/search] java.io.FileNotFoundException:

    \installedApps\TS01TWS01Node01Cell\iatse_war_test.ear\iatse.war\WEB-INF\lib\spring-web-4.3.9.RELEASE.jar (The system cannot find the path specified.)

     

    The package makes all the way to the wstemp folder (\wstemp\109445637\workspace\cells\TS01TWS01Node01Cell\applications) but does not go to the final location. 

    I am not sure what I am doing wrong! The jar files are properly copied, test connection is fine but never deploys properly. Tried on two different WebSphere instance, same issue. Please help!

    WebSphere Plugin 1.6.1

    13:55:39 Generating EAR For Artifact: XXXX_war_test

    13:55:43 Artifact is being deployed to virtual host: default_host

    13:56:04 Deploying 'XXXX_war_test' to IBM WebSphere Application Server

    13:57:42 Starting Application 'XXXX_war_test'...

    13:57:48 Finished: SUCCESS

     

    Thanks. 

     

    1. Did you specify a "context" for the application in the job configuration? If you did, try filing a bug at issues.jenkins-ci.org for this plugin and give me all the details, WAS version, JDK/JRE version, Jenkins version, etc...

  26. If you mean the "Generated context"/"context root", yes I did. I will submit a bug for it. 

  27. Hi, I have this error. How can I fix it?

    WebSphere Plugin 1.6.1
    Jenkins ver. 2.60.3
    My Test Connection is successfull

    1:22:09 Connecting to IBM WebSphere Application Server...
    11:22:13 The following artifacts will be deployed in this order...
    11:22:13 -------------------------------------------
    11:22:13 /var/lib/jenkins/workspace/ods/deploy-to-dev/target/ods-account-ear-4.0.4.ear Last modified on Jun 28, 2018 11:22:09
    11:22:13 -------------------------------------------
    11:22:13 Artifact is being deployed to virtual host: default_host
    11:22:13 Error deploying to IBM WebSphere Application Server: org.jenkinsci.plugins.websphere.services.deployment.DeploymentServiceException: Could not determine if artifact 'ods-account-ear' is installed: General Exception:
    11:22:13 at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.isArtifactInstalled(WebSphereDeploymentService.java:477)
    11:22:13 at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.stopArtifact(WebSphereDeployerPlugin.java:409)
    11:22:13 at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:245)
    11:22:13 at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    11:22:13 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:735)
    11:22:13 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:676)
    11:22:13 at hudson.model.Build$BuildExecution.post2(Build.java:186)
    11:22:13 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:621)
    11:22:13 at hudson.model.Run.execute(Run.java:1760)
    11:22:13 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    11:22:13 at hudson.model.ResourceController.execute(ResourceController.java:97)
    11:22:13 at hudson.model.Executor.run(Executor.java:405)
    11:22:13
    11:22:13 Performing rollback of 'ods-account-ear'
    11:22:13 WARNING: Artifact doesn't exist rollback repository
    11:22:13 Build step 'Deploy To IBM WebSphere Application Server' changed build result to FAILURE
    11:22:13 Finished: FAILURE

     

     

    WebSphere Java version = JRE 1.6.0 IBM 
    Jenkins job run with jdk1.6.0_45

    In the Jenkins logs I found such an error:

    INFO: Client code attempting to load security configuration
    com.ibm.websphere.management.application.client.AppDeploymentException: [Root exception is java.lang.IncompatibleClassChangeError: Implementing class]
    at com.ibm.websphere.management.application.AppManagementFactory.handleException(AppManagementFactory.java:680)
    at com.ibm.websphere.management.application.AppManagementFactory.readArchive(AppManagementFactory.java:143)
    at com.ibm.websphere.management.application.AppManagementFactory.readArchive(AppManagementFactory.java:93)
    at com.ibm.websphere.management.application.client.AppDeploymentController.readArchive(AppDeploymentController.java:251)
    at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.buildDeploymentPreferences(WebSphereDeploymentService.java:273)
    at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.isArtifactInstalled(WebSphereDeploymentService.java:468)
    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.stopArtifact(WebSphereDeployerPlugin.java:409)
    at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:245)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:735)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:676)
    at hudson.model.Build$BuildExecution.post2(Build.java:186)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:621)
    at hudson.model.Run.execute(Run.java:1760)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:405)
    Caused by: java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at jenkins.util.AntClassLoader.defineClassFromData(AntClassLoader.java:1140)
    at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:884)
    at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1311)
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1364)
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1327)
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1080)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at jenkins.util.AntClassLoader.defineClassFromData(AntClassLoader.java:1140)
    at hudson.ClassicPluginStrategy$AntClassLoader2.defineClassFromData(ClassicPluginStrategy.java:884)
    at jenkins.util.AntClassLoader.getClassFromStream(AntClassLoader.java:1311)
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1364)
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1327)
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1080)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.EjbJar30NoDDImportStrategyImpl$EjbJar30NoDDDiscriminator.hasContent(EjbJar30NoDDImportStrategyImpl.java:265)
    at org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.EjbJar30NoDDImportStrategyImpl$EjbJar30NoDDDiscriminator.canImport(EjbJar30NoDDImportStrategyImpl.java:126)

    1. You don't have credentials for authenticating to websphere? Do you have global security turned off?

      1. Yes, I have disabled global security.

      2. Greg, do you know where I can look for a problem?

        JENKINS-52355 - Getting issue details... STATUS

        1. I'm reviewing this issue....

  28. Hi Greg,

    I have tried it on a new application server (9.0.0.3). As before Jenkins says that the deployment was successful but when it tries to start the app, WebSphere throws error saying that "extract binaries to temporary location:". I am not sure what I am doing wrong or what else can I try. Please advise. 


    14:11:56 Generating EAR For Artifact: iatse_war_new

    14:12:00 Artifact is being deployed to virtual host: default_host
    
    14:12:22 Deploying 'iatse_war_new' to IBM WebSphere Application Server
    
    14:12:50 Starting Application 'iatse_war_new'...
    
    14:12:55 Finished: SUCCESS

     

     

    [7/17/18 14:12:50:327 PDT] 000000fe SystemOut O 2018-07-17 14:12:50.327 INFO 1640 --- [ Thread-99] c.i.w.m.a.InstallSchedulerImpl : ADMA5013I: Application iatse_war_new installed successfully.
    [7/17/18 14:12:54:155 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.155 WARN 1640 --- [rThreadPool : 6] com.ibm.ws.management.AdminHelper : ADMN1009I: An attempt is made to start the iatse_war_new application.
    [7/17/18 14:12:54:171 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.171 WARN 1640 --- [rThreadPool : 6] c.i.w.r.c.CompositionUnitMgrImpl : WSVR0190I: Starting composition unit WebSphere:cuname=iatse_war_new in BLA WebSphere:blaname=iatse_war_new.
    [7/17/18 14:12:54:186 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.186 ERROR 1640 --- [rThreadPool : 6] com.ibm.config.eclipse.wtp : Failed to extract binaries to temporary location:
    Binaries files were not added!

     


    This load strategy [ org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.DirectoryArchiveLoadStrategyImpl@c73694a2 ] Container [ com.ibm.etools.commonarchive.impl.WARFileImpl@180ae452 (URI: iatse.war, lastModified: 0, size: 0, directoryEntry: <unset>, originalURI: iatse.war) (types: null) ]
    [7/17/18 14:12:54:186 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.186 ERROR 1640 --- [rThreadPool : 6] com.ibm.config.eclipse.wtp : Failed to extract binaries to temporary location:
    Binaries files were not added!
    This load strategy [ org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.DirectoryArchiveLoadStrategyImpl@96c642c1 ] Container [ com.ibm.etools.commonarchive.impl.EARFileImpl@eb5164ed (URI: C:\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\TS01PWAS02Node01Cell\applications\iatse_war_new.ear\deployments\iatse_war_new, lastModified: 0, size: 0, directoryEntry: <unset>, originalURI: C:\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\TS01PWAS02Node01Cell\applications\iatse_war_new.ear\deployments\iatse_war_new) (types: null) ]
    [7/17/18 14:12:54:186 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.186 WARN 1640 --- [rThreadPool : 6] c.i.w.r.component.ApplicationMgrImpl : WSVR0200I: Starting application: iatse_war_new
    [7/17/18 14:12:54:186 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.186 WARN 1640 --- [rThreadPool : 6] c.i.w.r.component.ApplicationMgrImpl : WSVR0204I: Application: iatse_war_new Application build level: Unknown
    [7/17/18 14:12:54:202 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.202 WARN 1640 --- [rThreadPool : 6] com.ibm.ws.webcontainer.annotation : SRVE8000W: Skipped class that failed to initialize for annotation scanning.

    java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.jdbc.DataSourceInitializer
    at java.lang.Class.forNameImpl(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at com.ibm.ws.webcontainer.annotation.WASAnnotationHelper.loadClass(WASAnnotationHelper.java:985)
    at com.ibm.ws.webcontainer.annotation.WASAnnotationHelper.collectClasses(WASAnnotationHelper.java:211)
    at com.ibm.ws.webcontainer.annotation.WASAnnotationHelper.<init>(WASAnnotationHelper.java:162)
    at com.ibm.ws.webcontainer.annotation.WASAnnotationHelperManager.getAnnotationHelper(WASAnnotationHelperManager.java:66)
    at com.ibm.ws.webcontainer.metadata.WebMetaDataFactory.handOffReferenceData(WebMetaDataFactory.java:440)
    at com.ibm.ws.webcontainer.metadata.WebMetaDataFactory.createMetaData(WebMetaDataFactory.java:413)
    at com.ibm.ws.runtime.component.MetaDataMgrImpl.createMetaDataFromFactories(MetaDataMgrImpl.java:229)
    at com.ibm.ws.runtime.component.MetaDataMgrImpl.createMetaData(MetaDataMgrImpl.java:567)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.preStart(DeployedModuleImpl.java:553)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.preStart(DeployedApplicationImpl.java:849)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:1045)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:799)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplicationDynamically(ApplicationMgrImpl.java:1449)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2309)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:436)
    at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:379)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:127)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$1.run(CompositionUnitMgrImpl.java:654)
    at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5399)
    at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5615)
    at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:668)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:612)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1339)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:83)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:287)
    at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1263)
    at java.security.AccessController.doPrivileged(AccessController.java:620)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:91)
    at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1257)
    at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1096)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:831)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:813)
    at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1350)
    at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
    at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1243)
    at com.ibm.ws.management.application.AppManagementImpl._startApplication(AppManagementImpl.java:1483)
    at com.ibm.ws.management.application.AppManagementImpl.startApplication(AppManagementImpl.java:1372)
    at com.ibm.ws.management.application.AppManagementImpl.startApplication(AppManagementImpl.java:1321)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:83)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:287)
    at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1263)
    at java.security.AccessController.doPrivileged(AccessController.java:620)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:91)
    at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1257)
    at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1096)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:831)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:813)
    at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1350)
    at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
    at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1243)
    at com.ibm.ws.management.connector.AdminServiceDelegator.invoke(AdminServiceDelegator.java:181)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at com.ibm.ws.management.connector.soap.SOAPConnector.invoke(SOAPConnector.java:488)
    at com.ibm.ws.management.connector.soap.SOAPConnector.service(SOAPConnector.java:324)
    at com.ibm.ws.management.connector.soap.SOAPConnection.handleRequest(SOAPConnection.java:65)
    at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:733)
    at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:522)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)

    [7/17/18 14:12:54:202 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.202 ERROR 1640 --- [rThreadPool : 6] com.ibm.config.eclipse.wtp : Failed to extract binaries to temporary location:
    Binaries files were not added!
    This load strategy [ org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.DirectoryArchiveLoadStrategyImpl@344ddbe2 ] Container [ org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFragmentFileImpl@583c6c9c (URI: WEB-INF/lib/spring-web-4.3.9.RELEASE.jar, lastModified: 1531861968983, size: 0, directoryEntry: <unset>, originalURI: WEB-INF/lib/spring-web-4.3.9.RELEASE.jar) (types: null) ]
    [7/17/18 14:12:54:233 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.233 ERROR 1640 --- [rThreadPool : 6] com.ibm.config.eclipse.wtp : Failed to extract binaries to temporary location:
    Binaries files were not added!
    This load strategy [ org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.DirectoryArchiveLoadStrategyImpl@ae1862b7 ] Container [ org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl@4e4f0ebd (URI: WEB-INF/lib-provided/tomcat-embed-websocket-8.5.15.jar, lastModified: 1531861968967, size: 0, directoryEntry: <unset>, originalURI: WEB-INF/lib-provided/tomcat-embed-websocket-8.5.15.jar) (types: null) ]
    [7/17/18 14:12:54:233 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.233 INFO 1640 --- [rThreadPool : 6] com.ibm.ws.webcontainer.webapp : SRVE0169I: Loading Web Module: iatse.war.
    [7/17/18 14:12:54:265 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.265 INFO 1640 --- [rThreadPool : 6] com.ibm.ws.session.WASSessionCore : SESN0176I: Will create a new session context for application key default_host/iatsenew
    [7/17/18 14:12:54:265 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.265 ERROR 1640 --- [rThreadPool : 6] com.ibm.ws.webcontainer.util : SRVE8043E: An IOException occured searching jarFile [] for fileName [/WEB-INF/sip.xml] java.io.FileNotFoundException: C:\IBM\WebSphere\AppServer\profiles\AppSrv01\installedApps\TS01PWAS02Node01Cell\iatse_war_new.ear\iatse.war\WEB-INF\lib\spring-web-4.3.9.RELEASE.jar (The system cannot find the path specified.)
    [7/17/18 14:12:54:265 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.265 INFO 1640 --- [rThreadPool : 6] com.ibm.ws.webcontainer : SRVE0250I: Web Module null has been bound to default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443,www.teamservicesonline.net:80,www.teamservicesonline.net:443,beta.teamservicesonline.net:80,beta.teamservicesonline.net:443].
    [7/17/18 14:12:54:280 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.280 WARN 1640 --- [rThreadPool : 6] c.i.w.r.component.ApplicationMgrImpl : WSVR0221I: Application started: iatse_war_new
    [7/17/18 14:12:54:280 PDT] 000000f9 SystemOut O 2018-07-17 14:12:54.280 WARN 1640 --- [rThreadPool : 6] c.i.w.r.c.CompositionUnitMgrImpl : WSVR0191I: Composition unit WebSphere:cuname=iatse_war_new in BLA WebSphere:blaname=iatse_war_new started.
    [7/17/18 14:13:56:980 PDT] 000000e8 SystemOut O Hibernate: select client0_.iat_client_id as iat_clie1_3_, client0_.created_by as created_2_3_, client0_.created_date as created_3_3_, client0_.delete_fl as delete_f4_3_, client0_.updated_by as updated_5_3_, client0_.updated_date as updated_6_3_, client0_.client_id as client_i7_3_, client0_.client_name as client_n8_3_ from IATSE.DBO.iat_client client0_ where lower(client0_.client_name) like ?
    [7/17/18 14:14:02:684 PDT] 000000e8 SystemOut O 2018-07-17 14:14:02.684 WARN 1640 --- [ebContainer : 3] com.ibm.ws.ffdc.impl.FfdcProvider : FFDC1003I: FFDC Incident emitted on C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\ffdc\server1_1abfcb8f_18.07.17_14.14.02.6846439215679860107976.txt com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters -IOE 1044

  29.  Hi Greg,

    Thanks for this plugin. I need your help with following issue. I am new to Jenkins and struggling for almost a week now with this issue. I have followed steps you have mentioned in the documentation about jars and certs. Test connection is successful. 

    Jenkins version: 1.639

    WebSphere deployer Plugin: 1.6.1

    OS: Sun OS 5.10

    Artifact is being deployed to virtual host: abc_host
    Error deploying to IBM WebSphere Application Server: org.jenkinsci.plugins.websphere.services.deployment.

    DeploymentServiceException: Could not determine if artifact 'XYZEAR' is installed: AdminException: ADMA0089E:

    The AppManagement MBean is not found. at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.isArtifactInstalled

    (WebSphereDeploymentService.java:471)
    	at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.stopArtifact(WebSphereDeployerPlugin.java:409)
    	at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform(WebSphereDeployerPlugin.java:245)
    	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
    	at hudson.model.Build$BuildExecution.post2(Build.java:185)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668)
    	at hudson.model.Run.execute(Run.java:1763)
    	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    	at hudson.model.ResourceController.execute(ResourceController.java:98)
    	at hudson.model.Executor.run(Executor.java:410)
    
    Performing rollback of 'XYZEAR'
    WARNING: Artifact doesn't exist rollback repository
    Build step 'Deploy To IBM WebSphere Application Server' changed build result to FAILURE
    Finished: FAILURE

     

     Any guidance will be helpful, thanks.

    Paresh.

    1. Try the following.

      1) If you're using using WAS ND, make sure you're connecting to the deployment manager instead of the server instance

      2) If you haven't restarted Jenkins after you copied the "admin jars" to WEB-INF/lib, you'll need to do that

      3) If you are logging into WebSphere with credentials that don't have permissions to deploy, you'll need update WebSphere's Users/Groups section to add another user with higher privileges than the one you're using.

      Hope this helps

      1. Edit: after new findings to avoid confusion for other readers.

        Thanks Greg for quick response. 

        1) It is WAS ND - I connected with Deployment Manager port - Connection is successful 

        2) I restarted jenkins multiple times post copying admin JARs

        3) Created new user with all permission and used it in WebSphere Global Security 

        More information: Running the job on jenkins Master and have 777 permissions on EAR which is in jenkins workspace.

        after clicking on "Show Available Targets" its showing available targets


        Now I am facing following error in Jenkins Job Console:
         
        Artifact is being deployed to virtual host: default_host (also tried with other specific host for 
        application)
        Deploying 'XYZEAR' to IBM WebSphere Application Server
        Error deploying to IBM WebSphere Application Server: org.jenkinsci.plugins.websphere.services.deployment.
        DeploymentServiceException: Failed to install artifact: Failure uploading archive to server
        	at org.jenkinsci.plugins.websphere.services.deployment.WebSphereDeploymentService.installArtifact
        (WebSphereDeploymentService.java:356)
        	at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.deployArtifact
        (WebSphereDeployerPlugin.java:385)
        	at org.jenkinsci.plugins.websphere_deployer.WebSphereDeployerPlugin.perform
        (WebSphereDeployerPlugin.java:251)
        	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
        	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
        	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
        	at hudson.model.Build$BuildExecution.post2(Build.java:185)
        	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668)
        	at hudson.model.Run.execute(Run.java:1763)
        	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
        	at hudson.model.ResourceController.execute(ResourceController.java:98)
        	at hudson.model.Executor.run(Executor.java:410)
        
        Performing rollback of 'XYZEAR'
        WARNING: Artifact doesn't exist rollback repository
        Build step 'Deploy To IBM WebSphere Application Server' changed build result to FAILURE
        Finished: FAILURE

        Following Error in Jenkins Log Console :
         
        ADFS0112E: File transfer has failed with the following message: Upload retry limit exceeded for file 
        /opt/Xyz/jenkins/jobs/DeployToSIT2/builds/55/XyzEAR.ear. 
        Exception: java.net.UnknownHostException: ABCDEFGHIJAPP03.

        Please advice.

         

  30. Hi Greg,

    I was able to resolve my issue and and the war is being deployed correctly now. But what I am seeing now during deployment, even though the folder structure is removed and being recreated with latest timestamp but the compiled java classes are couple of days old. At first, the classes are with latest timestamp and then another process (??) removes them and replace them with a older version of the class. Do you know what is causing it or know how to fix it ? This is a standard deployment of WebSphere. 

     

     

    Thanks.