I used the steps bellow to run my chatbot servlet application inside of a Docker container.

1 – Download WAS Liberty Docker image:

docker pull websphere-liberty

2 – Create a Docker file with the following lines

FROM websphere-liberty
ADD ChatBot.war /opt/ibm/wlp/usr/servers/defaultServer/dropins/
ADD server.xml /opt/ibm/wlp/usr/servers/defaultServer/
ENV LICENSE accept

ChatBot.war is my chatbot application.
To add features and configuration for your server you need to update the server.xml.
Do not forget to put host=”*” on httpEndpoint or you will not access the server from your browser.

The server.xml is listed below

<server description=”new server”>

<!– Enable features –>
<featureManager>
<feature>javaee-7.0</feature>
<feature>localConnector-1.0</feature>
<feature>distributedMap-1.0</feature>
<feature>webCache-1.0</feature>
</featureManager>
<basicRegistry id=”basic” realm=”BasicRealm”>
<!– <user name=”yourUserName” password=”” />  –>
</basicRegistry>
<!– To access this server from a remote client add a host attribute to the following element, e.g. host=”*” –>
<httpEndpoint host=”*” httpPort=”9080″ httpsPort=”9443″ id=”defaultHttpEndpoint”/>
<!– Automatically expand WAR files and EAR files –>
<applicationManager autoExpand=”true”/>
<applicationMonitor updateTrigger=”mbean”/>
<distributedMap id=”watsoncache” jndiName=”services/cache/watsoncache”>
<diskCache/>
</distributedMap>
<keyStore id=”defaultKeyStore” password=”password”/>
<basicRegistry id=”basic” realm=”BasicRealm”>
<user name=”user” password=”password”/>
</basicRegistry>
</server>

3 – execute docker built -t chatbot .
4 – execute docker run -d -p 80:9080 -p 443:9443 chatbot
5 – Open your browser and access your application using localhost.

docker watson WebSphere

Today i publish a Java Web Application to Bluemix, using eclipse tools.

I get the error bellow when access the app:

Caused by: java.net.UnknownServiceException: Unable to find acceptable protocols.
isFallback=false, modes=[ConnectionSpec(cipherSuites=[TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA], tlsVersions=[TLS_1_2, TLS_1_1, TLS_1_0], supportsTlsExtensions=true),
ConnectionSpec(cipherSuites=[TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_3DES_EDE_CBC_SHA], tlsVersions=[TLS_1_0], supportsTlsExtensions=true), ConnectionSpec()], supported protocols=[TLSv1]

The application works on my machine (localhost) using WAS Liberty 16.0.0.3. and the app are using the latest watson java sdk.

I found several people with the same problem. It’s hard to understand why the lastest version of liberty on Bluemix has this problem with watson java sdk.

The solution is to use an old version of the build pack.

I did not find a way to pass parameters on eclipse to set the version of the liberty container.

Steps to solve this problem:

1 – Login to bluemix using the cf tool

2 – package your liberty profile : /wlp/bin/server package localhost –archive=server.zip –include=usr

3 – push the package to bluemix : cf push <application name> -p server.zip  -b liberty-for-java_v3_7-20170118-2046 -m 384M

 

Found the solution on this forum post

https://developer.ibm.com/answers/questions/363393/was-liberty-17001-does-not-work-with-watson-java-s/?sort=votes

WebSphere

Yesterday i found this tutorial on how to setup WebSphere IHS plugin with Liberty profile.

More information on Generating Plug-ins for Liberty Profile can be found here: Liberty Profile Plugin

WebSphere

For 2017 IBM have launched a broader Cloud Champions program, Cloud Champions will have technical expertise in the following IBM Software, solutions and services: Bluemix Infrastructure(Formerly Softlayer), Bluemix, MobileFirst, DevOps (UrbanCode) Middleware (Tivoli, Rational and WebSphere), API Connect, Cognitive (Watson and Watson IOT and Cloud Managed Services. Below is a brief description of who an IBM Champion is, the benefits of becoming and IBM Champion and our extended Champion community.

What are the benefits of being an IBM Champion?

IBM Champions may receive:

  • Special visibility, recognition, and networking opportunities within IBM communities, events, and conferences
  • Participation in exclusive IBM online communities
  • Exclusive access to IBM product development teams
  • Invitations and discounts to events and conferences
  • Special recognition on their developerWorks profile: The profiles of IBM Champions have special designations, such as “IBM CHAMPION” under their name and a unique icon on their profile picture. Their profiles may also include an endorsement and notable achievements in the left column to recognize their contributions to the technical community.

Nominations are now open, so you can nominate IBM Champion’s for the following areas:

  • IBM Social Business
  • IBM Power Systems
  • IBM Analytics
  • IBM Cloud – (All Middleware Champion’s will now be under Cloud)

When: October – November
How: Click here to Nominate
Link to Champion Site: Link to nomination site

WebSphere WebSphere Portal

Working this week on a new WebSphere Portal Project.

Several content are using AngularJS and some calls to get data go to another server in another domain.

To avoid CORS we implement a reverse proxy on the IHS side.

Bellow the config of my httpd.conf.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so

SSLProxyEngine on
KeyFile /opt/IBM/HTTPServer/bin/key.kdb
SSLStashfile /opt/IBM/HTTPServer/bin/key.sth

Proxypass /acme/products  https://anotherdomain/api/v1/products
ProxypassReverse /acme/products  https://anotherdomain/api/v1/products

AngularJS web WebSphere WebSphere Portal

I found this tool today. I have lots of redirects to do on a HTTP Server.

You just need to enter the old and new url, and you have several options.

WebSphere

The IBM® WebSphere® Application Server Migration Toolkit is a suite of tools and knowledge collections. It enables your organization to quickly and cost-effectively migrate to the latest releases of traditional WebSphere Application Server and Liberty. You can migrate from a previous version of WebSphere Application Server or from competitive application servers, such as Apache Tomcat Server, JBoss Application Server, Oracle® Application Server, and Oracle WebLogic Server.

WebSphere

WebSphere V9 joins the Java EE 7 compatible ranks of JBoss EAP 7, GlassFish 4, WildFly, WebSphere Liberty Profile 8.5, WebLogic 12.2.1, Hitachi Cosminexus, and TmaxSoft JEUS. All of the Java EE certified offerings are always listed on the official Java EE compatibility page.

WebSphere

Today i upgrade one TDI 7.1.1 JVM  to the latest fix from IBM.

The setup was easy, just unzip the file and copy to jvm directory.

When i launch an assembly line using delta.  The log file show the following error:

CTGDKE039E Error occurred when creating IBM Tivoli Directory Integrator Property store. Property store: System-Properties Exception: java.sql.SQLNonTransientConnectionException: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.

The derby database was not starting, and in derby.log i found:

2016-07-06 20:44:01.917 GMT : Access denied (java.net.SocketPermission localhost:1527 listen,resolve)
java.security.AccessControlException: Access denied (java.net.SocketPermission localhost:1527 listen,resolve)

I try everything on  http://www-01.ibm.com/support/docview.wss?uid=swg21450475

The problem was related to permission. The text bellow is from https://db.apache.org/derby/releases/release-10.10.2.0.html

After upgrading to a JVM with these changes, while attempting to boot, the network server may fail and raise the following error:

access denied (“java.net.SocketPermission” “localhost:1527” “listen,resolve”) java.security.AccessControlException: access denied (“java.net.SocketPermission” “localhost:1527” “listen,resolve”)

To workaround this problem, you must bring up the network server with a security policy which includes the now required missing permission. Instead of booting the network server as:

java org.apache.derby.drda.NetworkServerControl start

boot the network server as follows:

java -Djava.security.manager -Djava.security.policy=${yourPolicyFile} org.apache.derby.drda.NetworkServerControl start

where ${yourPolicyFile} is a file containing a customized version of the policy file described in the Derby Admin Guide section titled Basic Network Server security policy. You must customize that generic policy file to fit your application. In addition, you must add the following permission to the permissions block granted to the ${derby.install.url}derbynet.jar codebase:

permission java.net.SocketPermission “localhost:${port}”, “listen”;

where ${port} should be replaced by the port number where the network server listens for incoming connection requests. By default, that is port 1527.

Solving the problem

I add  permission java.net.SocketPermission “localhost:1024-“, “listen”; to the grant session of the java.policy file and restart TDI

 

Connections Domino WebSphere WebSphere Portal

Today IBM released WebSphere 9.0 for download.   The images i found on Software Catalog are:

expand

  • expand IBM WebSphere Application Server Family Edition V9.0 for Multiplatform Multilingual eAssembly (CJ0H7ML)
  • expand IBM WebSphere Application Server Liberty Core V9.0 for Multiplatform Multilingual (1 of 2) eAssembly (CJ0H2ML)
  • expand IBM WebSphere Application Server Liberty Core V9.0 for Multiplatform Multilingual (2 of 2) eAssembly (CJ0H3ML)
  • expand IBM WebSphere Application Server Network Deployment V9.0 for Multiplatform Multilingual (1 of 3) eAssembly (CJ0H4ML)
  • expand IBM WebSphere Application Server Network Deployment V9.0 for Multiplatform Multilingual (2 of 3) eAssembly (CJ0H5ML)
  • expand IBM WebSphere Application Server Network Deployment V9.0 for Multiplatform Multilingual (3 of 3) eAssembly (CJ0H6ML)
  • expand IBM WebSphere Application Server V9.0 for Multiplatform Multilingual (1 of 3) eAssembly (CJ0GZML)
  • expand IBM WebSphere Application Server V9.0 for Multiplatform Multilingual (2 of 3) eAssembly (CJ0H0ML)
  • collapse IBM WebSphere Application Server V9.0 for Multiplatform Multilingual (3 of 3) eAssembly (CJ0H1ML)

WebSphere

Alain Del Valle from the WebSphere Application Server L2 support team created this video to answer the question “How do I change my WebSphere SSL configuration to use protocol TLsv1.2 for WebSphere Application Server?”.

WebSphere

From announcement letter:

Will be available on June 24

WebSphere® Application Server V9.0, with its traditional and Liberty run times, continues to offer industry-leading, production-ready, standards-based Java™ EE 7 compliant architecture.

Highlights of Version 9.0 include:

  • Certification to the Java EE 7 Web Profile and Java EE 7 Full Platform for WebSphere Application Server traditional, which provides assurance that applications leverage standards-compliant programming models. WebSphere Liberty was certified to Java EE 7 Web Profile and Full Platform in June, 2015.
  • Ease of connecting existing on-premises applications with Bluemix® services, which include IBM Watson™ cognitive for optimal business outcomes.
  • Enhanced support for creating, documenting, and discovering APIs, and also integrating with API platforms, such as IBM API Connect™.
  • Significant improvements in software delivery lifecycle times through seamless integration into DevOps workflows. This enables continuous delivery and removes cross-team dependencies for deployment.
  • Accelerated pace of development and deployment by taking advantage of container technology that includes IBM® Container Services and Docker container with support for Docker Data Center. This enables seamless deployment of WebSphere applications to best meet business needs.
  • Increased flexibility to deploy WebSphere Application Server workloads with speed and agility on Pivotal Cloud Foundry, Amazon Web Services, Microsoft™ Azure, and Openshift, in addition to IBM Bluemix.
  • New WebSphere Application Server on Bluemix, single-tenant offering, which provides an option for deploying WebSphere Application Server applications on an isolated, single-tenant hardware.
  • New option to enable VMware customers to quickly provision new or scale existing workloads to the IBM Cloud. This enables clients who start locally and scale globally with cloud capabilities to scale more easily and also comply with data residency and other regulatory mandates.
  • Updated WebSphere Extreme Scale that provides ease-of-use enhancements for caching to help improve response times for the most demanding applications and dramatically speed configurations.
  • Use of Liberty App Accelerator to provide a quick start development of Java microservices. Spring Boot, Watson™ services, and other technologies can be used with Liberty App Accelerator to easily deploy projects to Bluemix.
  • Best practices for creating new Java microservices by using Game On!, an exemplar application, which helps explore microservices concepts.

WebSphere Application Server V9.0 continues to offer the leading, open-standards-based application foundation for traditional workloads and also modern applications that tend to be delivered as services. It enables accelerated delivery of innovative applications with unmatched operational efficiency, reliability, administration, security, and control.

WebSphere