wasJmsClient not supported in websphere 8.5 liberty profile - jms

I'm having trouble deploying an EAR project on liberty profile locally integrated in eclipse kepler. It comes back with the following error:
Application 'App-Name' requires feature wasJmsClient,
which is not supported by WebSphere Application Server V8.5 liberty profile.
Reason:
Application 'App-Name' requires feature wasJmsClient,
which is not supported by WebSphere Application Server V8.5 liberty profile.
I've read up on IBM documentation which indicates that you need to add suppport to this feature in your server.xml. I have done this, to no evail.

The Liberty profile comes distributed as two jar files, a runtime jar, and an optional extended jar. If you want to use JMS you need to also install the extended jar. Based on the information in the question this might be missing. You can download both the runtime and extended jar from wasdev.net.
You can check to see if the wasJmsClient and wasJmsServer features is installed by running
:
productInfo featureInfo
command found in the wlp/bin folder.

Its simple. Get wlp-extended jar from this link and install it from command prompt as admin.
https://developer.ibm.com/wasdev/downloads/#asset/addons-8.5.5-wlp-extended
Install it just by running the following command from wlp/bin folder:
java -jar wlp-extended.jar
It just prompts for license and its quite interactive.I think its good to go from there. it will install all the webprofile tools.
To recheck that
you can execute the following command from wlp/bin:
productInfo featureInfo

You can use IBM Install Utility (installUtility) inside serverRoot/bin folder to download the required feature:
C:\your\server\path\bin>installUtility install wasJmsClient-2.0
then add it to the server.xml
<featureManager>
<feature>webProfile-8.0</feature>
<feature>localConnector-1.0</feature>
<feature>wasJmsClient-2.0</feature>
</featureManager>

Related

Unable to start Spring Boot executable jar using IBM JRE 1.8

We have a Spring Boot application which is built as an executable jar and runs fine using both the Oracle and OpenJDK JREs (using 1.8 versions).
Attempting to run it using the IBM 1.8 JRE however results in the following error at the command line.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
This occurs if we execute the jar (using ./application.jar) or using java -jar application.jar
This led us to change the packaging to not make the jar executable and this allows us to start the application using java -jar application.jar. So it appears the IBM JRE doesn't like the launch script.
The problem is we don't want to have two packaging methods for different deployment environments, if possible.
Does anyone have any experience of why the IBM JRE doesn't like the script on the front of the jar file and whether there are any command line options to disable whatever checking its doing?
From your post it is unclear if you have problem with
1) running jar from Linux like chmod a+x application.jar and executing
Or
2) running via /opt/IBM/java/jre/bin/java -jar application.jar
For option 1) it is not a good idea as you do not explicitly choose jvm binary and rely on OS to choose one for you.
Read about binfmt_misc mechanism:
https://en.m.wikipedia.org/wiki/Binfmt_misc
For option 2)-it might be class loading problem, please add
/opt/IBM/java/jre/bin/java -verbose:class -jar application.jar
and consult documentation here: https://www.ibm.com/developerworks/library/j-dclp1/index.html

IBM Liberty Profile: The feature 'websocket-1.0' is not recognized

Just an initial step to run websocket application on IBM Liberty Profile 8.5.5.5. After did lots of research I found I needed to add a feature on the Liberty server.xml file.
<featureManager>
<feature>websocket-1.0</feature>
.......
</featureManager>
But as soon as I added that line on the configuration I'm getting a warning that
The feature 'websocket-1.0' is not recognized
server.xml /WebSphere Application Server V8.5 Liberty Profile/servers/defaultServer
line 5 Liberty Profile Configuration Problem
Any thought? Do I needed to add any Jar file for that?
In the 8.5.5.5 or earlier websocket feature is not contained in the downloaded jar. You have to install it from the repository using the following command:
featureManager install websocket-1.0 --when-file-exists=ignore
see the following page - Java WebSocket 1.0.
The 8.5.5.6 version is Java EE 7 compatible and contains webSocket-1.1 feature already built in, so you may download that one.
The feature files are in [Liberty Install]/lib/features folder.
However, I don't see websocket-1.0 or websocket-1.1 in Liberty 8.5.5.5
Try to use 8.5.5.6, you should see websocket-1.1.mf
For OpenLiberty navigate to [OpenLiberty Install]/bin via shell and execute:
featureUtility installFeature websocket-1.0 --acceptLicense
This will install the missing feature to the folder [OpenLiberty Install]/lib/features.

Websphere application server for developers linux command line install

I tried to install websphere application server for developer v8.5. I've already installed the installation manager. Then I download the image from here: all the three parts of WebSphere Application Server for Developers, Installation Manager Repository. Cause my linux has no GUI, so I unzipped the file and tried to use installation manager to install it.
I used :
./imcl listAvailablePackages -repositories /home/user/tmp/wasdev_installer/repository.config to verify that the package exist.
Then I ran : ./imcl install com.ibm.websphere.DEVELOPERSILAN.v85_8.5.5000.20130514_1044 -repositories /home/user/tmp/wasdev_installer/repository.config -installationDirectory /home/user/Websphere_v85 -accessRights nonAdmin -acceptLicense
But I always got errors like :
ERROR: The silent installation process does not support
installing packages that are contained on multiple media discs.
CRIMC1017E ERROR: Failed to locate zip com.ibm.websphere.batch_136_all.all 8.5.5000.201305110146.
Cannot find the table of contents file for an artifact in the repository. Table of contents files are located under the atoc directory in the repository.
If the repository files were transferred from a different location, verify that the files were not altered during the transfer operation. Copy the repository files to a different location and install from that location.
I re-unzipped the file, but didn't help. Was I doing wrong? Thanks for your help.
Deepending on what programming models you're using, you could always try the WebSphe Liberty Profile artefact install: https://www.ibmdw.net/wasdev/downloads/. It doesn't support every programming model that the full profile does, but it's a super-easy install, and easy to get going with as a development environment.
I resolved this issue by unzipping all files to one directory. The file part1 contains disk1, so the other files should be put under the directory of part1, which means in the same level of disk1 directory.
If you do not want to bother with downloading and decompressing archives containing the Installation Manager repositories, then there is a much easier and simpler process for getting WebSphere Application Server for Developers installed.
Once you have IBM Installation Manager installed, you only need to provide the repository location to where the IBM hosted WebSphere Application Server for Developers repository is located. For instance, to install WAS for Developers version 8.0 or version 8.5, you simply add one of the repository locations to the repository preferences.
V8.0: http://www.ibm.com/software/repositorymanager/V8WASDeveloperILAN
V8.5: http://www.ibm.com/software/repositorymanager/V85WASDeveloperILAN
Instructions for installing WAS for Developers using IBM hosted repositories in available on WASDev.net.
You could even use the IBM hosted repositories in your command line installation or response file installation, as long as you create a secure storage file with you MY IBM ID credentials for authenticating with the IBM servers, as described in the WebSphere Knowledge Center.
Alternatively, you can use the IBM Package Utility (a companion to Installation Manager), to reconstruct the IBM hosted repository on your local machine. The advantage to using PU is that you will be able to create a local repository that also includes the fixpack level of your own choosing rather than having to go get a fixpack from IBM Fix Central and then updating the installation afterwards.
Information on creating local repositories with Packaging Utility is available in the WebSphere Knowledge Center.

Activate Maven profile based software package installed on deploy server

I am using Maven 2.2.1 for building and deploying an application.
I am having a requirement like, if the application is to be deployed on the server it should check whether the server into which the application is to be deployed is installed in the system. If the server is not installed then it should skip all the remaining processes and exit the build process.
Can I do this using profiles?
Yes, you can do this by activating the profile by the presence of a file. Since your requirement is that the "application is installed on the system" then you can look for a file known to be used by that server software.
For example, if I wanted to activate a profile if WebSphere MQ is installed on a server, I could activate the profile as follows
<file>
<exists>/opt/mqm/java/lib/com.ibm.mq.jar</exists>
</file>
Note, this only works if the server software is always installed in the same location.
Reference: http://www.sonatype.com/books/mvnref-book/reference/profiles-sect-activation.html

JDBC Driver class not found: oracle.jdbc.OracleDriver

I have installed a third party java webservice which uses Oralce jdbc thin driver to write data into Oracle database. When i run this, i get the following error;
JDBC Driver class not found: oracle.jdbc.OracleDriver
I have oracle installed and set classpath variable to following value:
*D:\oracle\product\10.2.0\client_1\jdbc\lib\classes12.jar;D:\oracle\product\10.2.0\client_1\jdbc\lib\classes12.zip;D:\oracle\product\10.2.0\client_1\jdbc\lib\ojdbc14.jar;D:\oracle\product\10.2.0\client_1\jdbc\lib\ojdbc14.zip;C:\Program Files\Java\jdk1.7.0\jre\lib\rt.jar*
and path variable to following value;
*D:\oracle\product\10.2.0\client_1\bin;C:\Program Files\Java\jdk1.7.0\bin\;D:\oracle\product\10.2.0\client_1\jdbc\lib\classes12.jar;D:\oracle\product\10.2.0\client_1\jdbc\lib\classes12.zip;D:\oracle\product\10.2.0\client_1\jdbc\lib\ojdbc14.jar;D:\oracle\product\10.2.0\client_1\jdbc\lib\ojdbc14.zip*
Any suggestion why web service is not able to identify jdbc driver?
Thanks
I know 2 ways of turning Java app into Windows service and both do not use CLASSPATH. One is Java Service Wrapper by Tanuki Software. This tool uses wrapper.conf where you can show directories with .jar libraries:
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=c:\jars\*
wrapper.java.classpath.2=myservice.jar
Second tool I know is JSL: Java Service Launcher. In this tool there is jsl.ini where you put command line to run your server. It can use java with -cp option to show location of .jar libraries:
[defines]
MY_LIBS=d:\jars\*
AXIS_LIBS=d:\axis2-1.5.4\lib\*
CLASSPATH=.;%MY_LIBS%;%AXIS_LIBS%
export = CLASSPATH
...
[java]
...
cmdline = -Dfile.encoding=utf8 -cp %CLASSPATH% example.my.server
In both configuration you can use * to add all .jar files or you can show those files one by one (just like in CLASSPATH).
At first you should know what Windows is trying to execute. Check it in the service properties page. Then try to localize its configuration. If it uses one of tools I know then you know what to change. Other tools probably have similar configuration.
Method 1:
Download ojdbc.jar
add ojdbc6.jar to deployment assembly.
Right click on project->properties->select deployment assembly->click on 'Add'
->select 'Archives from File System'->browse to the folder where ojdbc6.jar is saved.->add the jar->click finish->Apply/OK.
Method 2:
if you want to add ojdbc.jar to your maven dependencies you follow this link:
http://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-in-your-maven-local-repository/
.
.
Even if you're using a maven project it is not necessary to add ojdbc to maven dependencies(method 2), method 1 (adding directly to deployment assembly) works just fine.
Make sure you have the ojdbc jar file (make sure you are using the correct one because depending on java version you may need to choose a different one).
use ojdbc14.jar for Java 1.4
use ojdbc5.jar for Java 1.5
ojdbc6.jar for Java 1.6
here is linke where you can download ojdbc6.jar file
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
You also have to add the jdbc jar to your server classpath. if tomcat, rigth-click on your Project->run as->run configurations, click on classpath and add your jdbc jar in Add external jars option
add ojdbc-6.jar to your lib directory of tomcat installation. Maven will downlowd this jar for you in .m2 directory, but you need to have this jar in tomcat lib as well.

Resources