In this article, I go back to my Lotus IBM Collaboration Solutions roots by describing how I installed IBM Web Experience Factory Designer ( fka WebSphere Portlet Factory Designer ) version 8 on Red Hat Enterprise Linux 6.3 ( x86-64 ).
PS For simplicity, I'm going to refer to the product as WEF :-)
Having downloaded WEF 8 from the IBM internal Passport Advantage repository - this comes down as: -
-rw-rw-r--@ 1 david_hay staff 1196213521 22 Oct 14:15 WEB_EXP_FACTORY_V8.0_MP_ML.zip
I also downloaded the requisite version of Eclipse: -
-rw-r--r--@ 1 david_hay staff 215235232 22 Oct 14:38 eclipse-jee-helios-SR2-linux-gtk-x86_64.tar.gz
from here: -
Specifically, this is what I downloaded.
Installation was relatively straight forward :-)
Initially, I wasn't able to get the GUI ( Swing-based ) installer to work, but there is a useful console variant, which I've described below.
I did eventually get the Swing GUI working, by installing the libstdc++.so.5 RPM: -
$ yum install -y libstdc++.so.5
Anyway, back to the installation ....
Install Eclipse
$ cd root
$ tar xvzf ~/Downloads/eclipse-jee-helios-SR2-linux-gtk-x86_64.tar.gz
- This automatically creates a directory called Eclipse under my user's home directory i.e. /root/Eclipse.
IT GOES WITHOUT SAYING THAT ONE SHOULD NEVER RUN ANYTHING AS ROOT - THIS IS, HOWEVER, MY OWN DEMO VM SO THAT'S OK.
Install WEF
$ cd /tmp
$ mkdir WEF
$ cd WEF
$ unzip ~/Downloads/WEB_EXP_FACTORY_V8.0_MP_ML.zip
Archive: /root/Desktop/WEB_EXP_FACTORY_V8.0_MP_ML.zip
creating: config/
extracting: config/eclipse.zip
extracting: config/EmployeeSampleDB.zip
extracting: config/factory.zip
extracting: config/ISALite.zip
extracting: config/jre.zip
inflating: config/linux-eclipse.tgz
inflating: config/linux_silent_install.properties
extracting: config/ProductDesignerTag.zip
inflating: config/wasce_setup-unix.bin
inflating: config/wasce_setup-win.exe
inflating: config/win_silent_install.properties
inflating: Factory.bin
inflating: Factory.exe
inflating: installer.properties
....
creating: config/
extracting: config/eclipse.zip
extracting: config/EmployeeSampleDB.zip
extracting: config/factory.zip
extracting: config/ISALite.zip
extracting: config/jre.zip
inflating: config/linux-eclipse.tgz
inflating: config/linux_silent_install.properties
extracting: config/ProductDesignerTag.zip
inflating: config/wasce_setup-unix.bin
inflating: config/wasce_setup-win.exe
inflating: config/win_silent_install.properties
inflating: Factory.bin
inflating: Factory.exe
inflating: installer.properties
....
$ chmod +x Factory.bin
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
Preparing CONSOLE Mode Installation...
===============================================================================
Choose Locale...
----------------
1- Deutsch
->2- English
3- Español
4- Français
5- Italiano
6- Português (Brasil)
CHOOSE LOCALE BY NUMBER:
===============================================================================
IBM Web Experience Factory (created with InstallAnywhere)
-------------------------------------------------------------------------------
===============================================================================
International Program License Agreement
Part 1 - General Terms
BY DOWNLOADING, INSTALLING, COPYING, ACCESSING, CLICKING ON AN
"ACCEPT" BUTTON, OR OTHERWISE USING THE PROGRAM, LICENSEE AGREES TO
THE TERMS OF THIS AGREEMENT. IF YOU ARE ACCEPTING THESE TERMS ON
BEHALF OF LICENSEE, YOU REPRESENT AND WARRANT THAT YOU HAVE FULL
AUTHORITY TO BIND LICENSEE TO THESE TERMS. IF YOU DO NOT AGREE TO
THESE TERMS,
* DO NOT DOWNLOAD, INSTALL, COPY, ACCESS, CLICK ON AN "ACCEPT" BUTTON,
OR USE THE PROGRAM; AND
* PROMPTLY RETURN THE UNUSED MEDIA, DOCUMENTATION, AND PROOF OF
ENTITLEMENT TO THE PARTY FROM WHOM IT WAS OBTAINED FOR A REFUND OF THE
AMOUNT PAID. IF THE PROGRAM WAS DOWNLOADED, DESTROY ALL COPIES OF THE
PROGRAM.
Press Enter to continue viewing the license agreement, or enter "1" to
accept the agreement, "2" to decline it, "3" to print it, or "99" to go back
to the previous screen.: 1
===============================================================================
Installing...
-------------
[==================|==================|==================|==================]
[------------------|------------------|------------------|------------------]
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
Preparing CONSOLE Mode Installation...
===============================================================================
Choose Locale...
----------------
1- Deutsch
->2- English
3- Español
4- Français
5- Italiano
6- Português (Brasil)
CHOOSE LOCALE BY NUMBER:
===============================================================================
IBM Web Experience Factory (created with InstallAnywhere)
-------------------------------------------------------------------------------
===============================================================================
International Program License Agreement
Part 1 - General Terms
BY DOWNLOADING, INSTALLING, COPYING, ACCESSING, CLICKING ON AN
"ACCEPT" BUTTON, OR OTHERWISE USING THE PROGRAM, LICENSEE AGREES TO
THE TERMS OF THIS AGREEMENT. IF YOU ARE ACCEPTING THESE TERMS ON
BEHALF OF LICENSEE, YOU REPRESENT AND WARRANT THAT YOU HAVE FULL
AUTHORITY TO BIND LICENSEE TO THESE TERMS. IF YOU DO NOT AGREE TO
THESE TERMS,
* DO NOT DOWNLOAD, INSTALL, COPY, ACCESS, CLICK ON AN "ACCEPT" BUTTON,
OR USE THE PROGRAM; AND
* PROMPTLY RETURN THE UNUSED MEDIA, DOCUMENTATION, AND PROOF OF
ENTITLEMENT TO THE PARTY FROM WHOM IT WAS OBTAINED FOR A REFUND OF THE
AMOUNT PAID. IF THE PROGRAM WAS DOWNLOADED, DESTROY ALL COPIES OF THE
PROGRAM.
Press Enter to continue viewing the license agreement, or enter "1" to
accept the agreement, "2" to decline it, "3" to print it, or "99" to go back
to the previous screen.: 1
===============================================================================
Installing...
-------------
[==================|==================|==================|==================]
[------------------|------------------|------------------|------------------]
WEF installs to /root/IBM.
Configuring Eclipse to use WEF
This was more straightforward than I'd expected, but not obviously documented anywhere :-( I guess that most people use the GUI installation, hence why it's not really written down :-)
$ cd /root/eclipse
$ mkdir links
$ cd links
$ cp /root/IBM/Designer/eclipse/com.bowstreet.designer.link .
This little file merely tells Eclipse where to look to find WEF: -
$ cat com.bowstreet.designer.link
path=/root/IBM/Designer
Validate Setup
$ locate com.bowstreet.designer.link
/root/eclipse/links/com.bowstreet.designer.link
$ ls -al /root/IBM/Designer/eclipse/com.bowstreet.designer.link
-rw-rw-r-- 1 root root 24 Oct 22 21:22 /root/IBM/Designer/eclipse/com.bowstreet.designer.link
$ ls -al /root/eclipse/links/com.bowstreet.designer.link
-rw-r--r-- 1 root users 24 Oct 22 15:25 /root/eclipse/links/com.bowstreet.designer.link
Apart from this, I did hit one other problem when I created my first WEF project, when attempting to "bind" via SOAP to my WebSphere Portal v7 server.
In the Linux terminal session, I could see: -
java version "1.6.0"
Java(TM) SE Runtime Environment (build pxa6460_26sr1fp1-20120309_01(SR1 FP1))
IBM J9 VM (build 2.6, JRE 1.6.0 Linux amd64-64 20120308_104898 (JIT enabled, AOT enabled)
J9VM - R26_Java626_SR1_FP1_20120308_1511_B104898
JIT - r11_20111028_21230ifx5
GC - R26_Java626_SR1_FP1_20120308_1511_B104898
J9CL - 20120308_104898)
JCL - 20120214_01
Oct 22, 2012 3:30:15 PM com.ibm.ws.ssl.config.SSLConfigManager
INFO: ssl.disable.url.hostname.verification.CWPKI0027I
Oct 22, 2012 3:30:16 PM com.ibm.ws.security.config.SecurityObjectLocator
INFO: Client code attempting to load security configuration
[2012-10-22 15:34:00:944] Creating session: anonymous1350916440945
com.bowstreet.designer.deploy.DeploymentException: Check your Server Host and SOAP Connector Port inputs, and make sure your server is running. To verify your SOAP Connector port, go to the WebSphere Admin Console, select Application Servers > YOUR_SERVER > Ports and use the SOAP_CONNECTOR_ADDRESS.
at com.bowstreet.designer.deploy.jmx.JMXConnection.connectAdminClient(JMXConnection.java:242)
at com.bowstreet.designer.deploy.jmx.JMXConnection.<init>(JMXConnection.java:141)
at com.bowstreet.designer.webapp.deployment.RemoteWAS61$6.run(RemoteWAS61.java:439)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: The system cannot create a SOAP connector to connect to host wp7.uk.ibm.com at port 10025.
at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:632)
at com.ibm.websphere.management.AdminClientFactory.access$000(AdminClientFactory.java:123)
at com.ibm.websphere.management.AdminClientFactory$1.run(AdminClientFactory.java:206)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)
at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:202)
at com.bowstreet.designer.deploy.jmx.JMXConnection.connectAdminClient(JMXConnection.java:232)
... 3 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedConstructorAccessor5.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:454)
... 8 more
Caused by: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl; targetException=java.lang.IllegalArgumentException: Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl]
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:422)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:222)
... 12 more
Caused by: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl; targetException=java.lang.IllegalArgumentException: Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl]
at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:475)
at org.apache.soap.rpc.Call.WASinvoke(Call.java:451)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient$4.run(SOAPConnectorClient.java:380)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:365)
... 13 more
INFO: ssl.disable.url.hostname.verification.CWPKI0027I
Oct 22, 2012 3:30:16 PM com.ibm.ws.security.config.SecurityObjectLocator
INFO: Client code attempting to load security configuration
[2012-10-22 15:34:00:944] Creating session: anonymous1350916440945
com.bowstreet.designer.deploy.DeploymentException: Check your Server Host and SOAP Connector Port inputs, and make sure your server is running. To verify your SOAP Connector port, go to the WebSphere Admin Console, select Application Servers > YOUR_SERVER > Ports and use the SOAP_CONNECTOR_ADDRESS.
at com.bowstreet.designer.deploy.jmx.JMXConnection.connectAdminClient(JMXConnection.java:242)
at com.bowstreet.designer.deploy.jmx.JMXConnection.<init>(JMXConnection.java:141)
at com.bowstreet.designer.webapp.deployment.RemoteWAS61$6.run(RemoteWAS61.java:439)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: The system cannot create a SOAP connector to connect to host wp7.uk.ibm.com at port 10025.
at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:632)
at com.ibm.websphere.management.AdminClientFactory.access$000(AdminClientFactory.java:123)
at com.ibm.websphere.management.AdminClientFactory$1.run(AdminClientFactory.java:206)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)
at com.ibm.websphere.management.AdminClientFactory.createAdminClient(AdminClientFactory.java:202)
at com.bowstreet.designer.deploy.jmx.JMXConnection.connectAdminClient(JMXConnection.java:232)
... 3 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedConstructorAccessor5.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:454)
... 8 more
Caused by: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl; targetException=java.lang.IllegalArgumentException: Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl]
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:422)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.<init>(SOAPConnectorClient.java:222)
... 12 more
Caused by: [SOAPException: faultCode=SOAP-ENV:Client; msg=Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl; targetException=java.lang.IllegalArgumentException: Error opening socket: java.net.SocketException: java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl]
at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:475)
at org.apache.soap.rpc.Call.WASinvoke(Call.java:451)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient$4.run(SOAPConnectorClient.java:380)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:365)
... 13 more
I've seen - and blogged about this before - WebSphere Portlet Factory 6.1.5 - My First Failure .... and success.
The problem is with the stock OpenJDK JRE: -
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (rhel-1.50.1.11.5.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
OpenJDK Runtime Environment (IcedTea6 1.11.5) (rhel-1.50.1.11.5.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
which is easily fixed by "switching" to the IBM JRE ( that I happen to have installed on this, my IBM BPM v8 server ): -
$ source /opt/ibm/BPM/v8.0/profiles/ProcCtr01/bin/setupCmdLine.sh
$ java -version
Java(TM) SE Runtime Environment (build pxa6460_26sr1fp1-20120309_01(SR1 FP1))
IBM J9 VM (build 2.6, JRE 1.6.0 Linux amd64-64 20120308_104898 (JIT enabled, AOT enabled)
J9VM - R26_Java626_SR1_FP1_20120308_1511_B104898
JIT - r11_20111028_21230ifx5
GC - R26_Java626_SR1_FP1_20120308_1511_B104898
J9CL - 20120308_104898)
JCL - 20120214_01
Now when I start Eclipse, I see normal "errors" : -
$ ./eclipse
Oct 22, 2012 3:39:14 PM null null
WARNING: ssl.default.password.in.use.CWPKI0041W
Oct 22, 2012 3:39:15 PM null null
INFO: ssl.disable.url.hostname.verification.CWPKI0027I
Oct 22, 2012 3:39:15 PM null null
INFO: Client code attempting to load security configuration
CWPKI0308I: Adding signer alias "CN=wp7.uk.ibm.com, OU=Root Cert" to local
keystore "JMXClientTrustStore" with the following SHA digest:
93:F1:0D:2C:B2:C0:AC:2D:26:AB:35:22:76:7B:B4:8C:0B:95:9C:CA
Oct 22, 2012 3:39:16 PM null null
INFO: Client code attempting to load security configuration
[2012-10-22 15:39:23:233] Creating session: anonymous1350916763232
[2012-10-22 15:39:26:703] Discarding session: anonymous1350916763232
[Mon Oct 22 15:40:39 BST 2012] The following properties from "/root/workspace/BPM101/WebContent/WEB-INF/config/override.properties" will over-ride their counterparts in the standard IBM property files:
bowstreet.FullyParseAllPages=true
bowstreet.themeFile=/WEB-INF/factory/themes/blue_WEF8.0.uitheme
bowstreet.baseRddFile=/WEB-INF/factory/data_definitions/dojo_base_datadef.xml;/WEB-INF/factory/data_definitions/base_datadef.xml
bowstreet.pageautomation.uniqueIdGenerationLevel=1
Oct 22, 2012 3:39:15 PM null null
INFO: ssl.disable.url.hostname.verification.CWPKI0027I
Oct 22, 2012 3:39:15 PM null null
INFO: Client code attempting to load security configuration
CWPKI0308I: Adding signer alias "CN=wp7.uk.ibm.com, OU=Root Cert" to local
keystore "JMXClientTrustStore" with the following SHA digest:
93:F1:0D:2C:B2:C0:AC:2D:26:AB:35:22:76:7B:B4:8C:0B:95:9C:CA
Oct 22, 2012 3:39:16 PM null null
INFO: Client code attempting to load security configuration
[2012-10-22 15:39:23:233] Creating session: anonymous1350916763232
[2012-10-22 15:39:26:703] Discarding session: anonymous1350916763232
[Mon Oct 22 15:40:39 BST 2012] The following properties from "/root/workspace/BPM101/WebContent/WEB-INF/config/override.properties" will over-ride their counterparts in the standard IBM property files:
bowstreet.FullyParseAllPages=true
bowstreet.themeFile=/WEB-INF/factory/themes/blue_WEF8.0.uitheme
bowstreet.baseRddFile=/WEB-INF/factory/data_definitions/dojo_base_datadef.xml;/WEB-INF/factory/data_definitions/base_datadef.xml
bowstreet.pageautomation.uniqueIdGenerationLevel=1
The solution is to create a startup script that sources the WAS profile before starting Eclipse - something like this: -
#!/bin/sh
source /opt/ibm/BPM/v8.0/profiles/ProcCtr01/bin/setupCmdLine.sh
/root/eclipse/eclipse
source /opt/ibm/BPM/v8.0/profiles/ProcCtr01/bin/setupCmdLine.sh
/root/eclipse/eclipse
No comments:
Post a Comment