I'm trying to run an application using Oracle ADF Business Components on a JBoss Server. I've maneged to deploy it, but when I try to load the page I get below exception:
java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6 cannot be cast to oracle.jdbc.OracleConnection
Is there a way solve this? Maybe configure JBoss to not use this wrapped connection or configure the ADF framework to unwrap it?
This is a while back, but I'll just follow up on my own question.
There is a guide on Oracle Metalink (Needs login) wich explains how to deploy ADF/BC on JBoss. I'm pretty sure this is what solved this for me (it's a while ago..)
Here is a copy of it:
Abstract
The purpose of this note is to show how you create an ADF BC Application Module and how you deploy it on a JBoss Application Server. It will also show you what configurations you need to perform on the JBoss side in order for the Application Module to work correctly.
Scope & Application
This note is intended for anyone who is about to deploy an ADF BC Module to a JBoss Application Server.
How To Deploy an ADF BC Module to a JBoss Application Server
The steps necessary for deploying an ADF BC Module to a JBoss Application Server are the following:
Setup the ADF Runtime Libraries on the JBoss Server
Setup data source(s) on the JBoss Server
Configure the ADF BC Module
Deploy the ADF BC Module
I will go through each of these steps more detailed. There is also a complete example attached for download here.
Setup the ADF Runtime Libraries on the JBoss Server
Shutdown the Application Server.
Invoke the ADF Runtime Installer wizard. Choose Tools | ADF Runtime Installer, and choose a server type from the submenu.
Proceed through the pages of the wizard. For detailed instructions for any page of the wizard, click Help.
On the Location page, select the home (or root) directory of the server on which the libraries are to be installed.
On the Installation Options page, you may choose the operation that you wish to perform.
* Install the ADF runtime libraries from your JDeveloper installation.
* Uninstall previously installed ADF runtime libraries.
* Restore an archived version of the ADF runtime libraries as the active version.
On the Summary page, click Migrate if you wish to prepare any existing UIX JSP projects for deployment.
On the Summary page, confirm the details of the installation, and click Finish.
Restart the application server.
Setup data source(s) on the JBoss Server
To create an Oracle data source in the JBoss server, you need to take the following steps:
Create a file called oracle-ds.xml. This file will contain your data source configuration. Below is an example on how such a file can look like.
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>OracleDS</jndi-name>
<use-java-context>false</use-java-context>
<connection-url>jdbc:oracle:thin:#mydbhost.com:1521:mysid</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>hr</user-name>
<password>******</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
</local-tx-datasource>
</datasources>
Copy the file to the /deploy. This will install it on the JBoss server.
Configure the ADF BC Module
There are a few steps that need to be taken upon the ADF BC Module in order for it to run on the JBoss server.
When creating an ADF BC Module that will be used on a JBoss application server, one needs to set the SQL Flavor to SQL92 and the Type Map to Java. This change is required when using JBoss as the Application Server.
****Package the ADF Business Components project as an EJB session bean.****
Right Click on the Application Module, select Business Components Deployment.
In the profiles Dialog, select EJB Session Beans.
In the EJB Session Beans dialog, select Deploy To: Other EJB Container
In the AppModules dialog, configure the Application Module as seen in the figure 1 below.
Figure 1. Configuration of the Application Module
Once done, your Project will look similar to the one shown in the figure 2 below.
Figure 2. The JDeveloper Project
The final step is to configure the Application Module to use the data source we created in the previous step. This is done as follows:
Edit the application module.
In the Navigator, right-click the Business Components application module icon and choose Configurations.
Select the appropriate configuration.
Select this configuration and click Edit.
In the Connection Type list, choose JDBC DataSource.
Enter a DataSource Name. For example: java:/OracleDS.
Deploy the ADF BC Module
If you have your JBoss server either locally or mapped on your local machine, you can deploy it directly from inside JDeveloper. If your JBoss server is remote, and not mapped to the local machine, or you have a JSP application that later will use this module, you cannot deploy it directly from within JDeveloper. Both methods are described below.
Deploying the Module from within JDeveloper
1. Create a connection to the target application server.
2. If you want to support JBoss-specific configuration options for the EJB, add a jboss.xml deployment descriptor file. For more information on this file, see http://www.jboss.org.
3. If your project is a Business Components UIX JSP project, add required Cabo resources to it.
4. Select the deployment profile in the Navigator, right-click, and choose Deploy to | < application server connection> to package the application as an archive file and deploy it via the selected application server connection.
Deploying the Module outside of JDeveloper
If your JBoss server is remote, and not mapped to the local machine, or you have a JSP application that later will use this module you will have to do as follows:
Choose Deploy to EAR file from the context menu to deploy it as an EAR file. You must deploy this application to an EAR file and not a WAR file, as JBoss will not add the EJB references under the java:comp/env/ JNDI namespace for a WAR file.
Copy this file manually to the /deploy directory.
Related
I have imported a project into the eclipse and it has different modules like
Audit
AuditEJB
Common
CommonLoginConsumer
Core
Db2Integration
EJB
InitWeb
Integration EAR
MDMIntegration
PrepackagedApps
Properties
SchedulerEJB
ScreensWeb
WebServiceConsumer
WebServiceProvider
Provider
CCWSTest (Gradle module)
CTest
CUiWeb
UtilityTestEAR
UtilityTestWeb
Configured build Path, solved all the Java Problems. In the company that I'm working to configure WAS Server 8.0, we need to configure DSC which has all the deployment frameworks.
In Servers (Right click)> Add and Remove, I have IntegrationEAR and UtilityTestEAR
UtilityTestEAR contains Properties, and UtilityTestWeb
Integration EAR has apsclient-source.jar, Adit, AuditEJB, Common, CommonLoginConsumer, Core, Db2Integration, EJB, InitWeb, MDMIntegration, Properties, SchedulerEJB, ScreensWeb, WebServiceConsumer, WebServiceProvider, Provider, org.apache.soap.encoding61.jar
When I added UtilityTestEAR to the WAS Server, Server started Successfully and when I try to publish there was no response.
When I added IntegrationEAR to the WAS Server, when I started the server, there was an error saying:
The publish encountered some problems and the application may not have been installed or it may have been successfully installed but was unable to start.
The application contains validation errors. Correct the errors in the Problems view before publishing the application on the server.
If you want to allow applications containing errors to be published on the server, enable the Allow applications containing errors to be published on a server check box (Windows > Preferences > Servers > WebSphere).
CHKJ2802E: class com.ford.mss.cdr.cib.mdb.CdrAuditLogMDB, or one of its supertypes, cannot be reflected. Check the classpath.
I am trying to deploy to my localhost.
Please Suggest
I am new to Spring framework even though i have been a java dev for quite some time. I am impressed by the spring insight application demos in you tube and want to use it in my application. How ever, when i try to create a new tc server using the instructions provided, for windows 8.1 64 bit
tcruntime-instance.bat create --template bio --template insight -i C:\workspaces\eclipses\sts\sts-bundle\pivotal-tc-server-developer-3.1.1.RELEASE\insight-instance http-insight-server-stsdeployed
When i try to add the folder created as the location of the new tc server with insight configured, using STS-> server view-> right click-> new-> server-> selected v3.0-3.1- && server-runtime env->add->browse="newly created server instance directory" it shows me below error.
The Tomcat installation directory is not valid. It is missing expected file or folder tcruntime-ctl.sh.
any idea how to add a new server and run my application on it? or add spring insights to existing spring boot or spring web application thru maven or spring configuration?
Note: Even though im using STS, i would like to know how to use these instances with Eclipse or IntelliJ idea. Im on a windows 8.1 64 bit machine.
When you click "add" from your instructions, you are browsing to a new tc Server installation directory (the binaries you want to run) not the instance directory. Once you select the installation directory of the version you wish to use, you will select next in the configuration and it will give you the option to "Create instance" or use an existing instance. You will then select use an existing instance and point to your newly created instance directory.
I have installed IBM Worklight Server 6.0 in WAS 8.0.
I have deployed a projectA.war & projectB.war via ant script and I can access both the console with the different context root.
The problem I am facing here is, I have deployed the appA.wlapp in projectA.war via the Worklight console, the same application is available when I access the projectB.war console.
Can anyone help me to find the solution?
My only guess right now is that there is a mutual database for both projects so you see the same app in both consoles (and that too only happens w/out an error because maybe the different .war files have identical authenticationConfig.xml settings).
That is, the same database configuration is used for both projects; This configuration is either:
Part of the .war files that you deploy (in worklight.properties), or
Something that you configure in the Ant task script used to deploy the .war files, or
Some configuration in the application server hosting the .war files.
See documentation: http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fadmin%2Fc_clustering.html
I have an ear deployed to WebSphere Application Server Community Edition which uses spring to load different interfaces. For production all those classes are loaded inside the ear. I'm trying to override those classes with another class in a jar outside the EAR.
I placed my jar in /var/shared/lib and have a deployment dependency which I thought would include those folder's into the classpath:
<sys:dependencies>
<sys:dependency>
<sys:groupId>org.apache.geronimo.configs</sys:groupId>
<sys:artifactId>sharedlib</sys:artifactId>
</sys:dependency>
</sys:dependencies>
What am I missing? The spring results in a NoClassDef stating the class cannot be found.
Websphere has a shared library feature. Add your jar in shared library and then add that library in your application usin websphere admin console.
Using shared libraries at the application level
To define a shared library named VersionCheckerV2_SharedLib and associate it
to our ClassloaderTest application, do the following steps:
1. In the administrative console, select Environment → Shared Libraries.
2. Select the scope at which you want this shared library to be defined, such as
Cell, and click New
To add
Select Applications → Application Types→ WebSphere enterprise
applications.
6. Select the ClassloadersExample application.
7. In References, select Shared library references.
8. Select AppName in the Application row.
9. Click Reference shared libraries.
10.Select the VersionCheckerV2_SharedLib and click the >> button to move it
to the Selected column
Use shared library for this task. Use this book for guidence.
I have problem with deploying JSR168 portlet using xmlaccess. I have no problem with deploy and join to conrete page but I would like to add shared library reference automatically. Is it possible?? I added shared library named 'libshared' using IBM WS console. Can I add this reference in input xml using by xmlaccess?
I don't think you can do this in xmlaccess. But you may try putting a reference to the library under the Manifest.MF file of the META-INF directory of your portlet's war file.
Or could just put the shared jar file under your /shared/ext directory. Or you could put it inside your wps.ear file. Mind you, either of these two solutions would share your library with the entire portal installation, rather than just select portlets.
You can deploy the application using wsadmin or similar and use that to update the classpath (i.e. for the shared library), you can then use xmlaccess to deploy the portlets and reference the previously deployed application - although I think this may only work in WebSphere Portal 6.1.
Give me a shout if you need further details.
I encountered this as well, a while ago... and researched it to the max, including spending some time chatting with IBM's support in various levels.
The XMLAccess protocol doesn't provide for such "system-level" configuration alongside Portlet application deployment; it can only be used to install, customize and uninstall Portlet applications and related artifacts.
If your deployment strategy involves deploying WAR files directly through XMLAccess, then you will have to manually add the shared-library to the application through the WAS admin console; this will have to be done manually because, when deploying WAR files through XMLAccess, an EAR with some random name is being created by WebSphere Portal to "host" your WAR file; hence you can't script the attachment of a shared library.
(alternatively, you may wish to add the shared library to the server's (WebSphere_Portal) classpath)
If your deployment strategy, instead, involves deploying Portlet applications packaged as EARs, then you're in a better position; you could automate the shared-library attachment as part of your EAR deployment process, then use XMLAccess to inform WebSphere Portal about the location, in the EAR, of your Portlet applications (which is what Michael mentioned above; it works in WebSphere Portal 6.0 as well).
Good luck.