IBM Worklight - unable to run some projects - ibm-mobilefirst

Can you tell me why some of my projects don't run in Worklight? I've received a couple of projects from other people, some work, some don't. I've tried this on Worklight 6.0 as well as 5.0.6 but I'm seeing the same errors, see below (this happens when trying to deploy the app to the Worklight server, on my local console):
[ERROR ] SRVE0315E: An execption occurred: com.ibm.ws.webcontainer.webapp.WebAppErrorReport: java.lang.RuntimeException: BaseProjectLocal is null
at com.worklight.common.util.BaseProjectLocal.get(BaseProjectLocal.java:41)
at com.worklight.server.util.ProjectLocal.get(ProjectLocal.java:55)
at com.worklight.server.util.ProjectLocal.getCoreBeanFactoryS(ProjectLocal.java:95)
at com.worklight.core.util.RssBrokerUtils.getBeanFactory(RssBrokerUtils.java:60)
at com.worklight.core.auth.impl.AuthenticationContext.getOrCreateAuthenticationContext(AuthenticationContext.java:99)
at com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:119)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194)
at [internal classes]
Caused by: java.lang.RuntimeException: BaseProjectLocal is null
... 9 more
I've also tried to create the project manually and paste the common folder over but that's no good either. Any help would be appreciated here.
Further Information: This is importing a project into Eclipse. This was previously a project that was built in Worklight 5.0.6 and is being imported to Worklight 6.0. I am simply right clicking on the common folder > run as > build all and deploy. I then see the following message 'Failed to deploy the application to Worklight server: Worklight module MobileWalletSencha was not successfully started. Full details of the error are available from the Worklight Development Server console' and then I see the error log shown above. If I add this content to a new project, yes it fails as well then.

It would be easier if you could share one of the projects that fail. With an error like "java.lang.RuntimeException: BaseProjectLocal is null" there is nothing much one can say.
BTW, what and how are you trying to deploy? is this a .war file? a .wlapp file? a project you import to eclipse and try to build? Add more details about the phenomena (anything you can, don't be shy on details). Please edit the question with this information.
Also, if you create a new project - it works, but if you add it the contents of a project that fails, it then fails as well? Edit the question with the contents that makes the project fail - it would be best to share this failing project.

Related

"Failed to Deploy Artefact error" in Eclipse Mule ESB project

I'm trying to run a trivial http echo app against the 3.50 CE runtime and I get the following stack trace(s) when I try to run
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Failed to deploy artifact 'default', see below +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
java.lang.NullPointerException
at org.mule.module.launcher.DefaultArchiveDeployer.guardedDeploy(DefaultArchiveDeployer.java:274)
...
Exception in thread "main" java.lang.NullPointerException
at org.mule.module.launcher.DefaultArchiveDeployer.addZombieApp(DefaultArchiveDeployer.java:325)
Additional context:
I've just started working with Mule (using the Eclipse Plugin). I initially had the trial package which is configured for Enterprise edition and I had that working with some of the trivial examples - hello world and echo.
I then downloaded the community runtimes and changed the targets on the projects, at that point I had been getting No Application Name errors, and I tried rebuilding them as new projects with CE targets from the start.
I also had been running them as mule applications, but this page
https://developer.mulesoft.com/docs/display/current/Studio+in+Eclipse
seems to indicate I must use maven ( I've set that up - although the automatic POM management doesn't seem to be working) but I still get the above failure.
There's no indication of why it's failing, as far as I can tell my projects output is valid.
Any suggestions welcome.
For what it's worth this is working now (fixed it shortly after posting the question even though it's been a blocker since yesterday).
If anyone else runs aground of the same issue..
I wasn't using the latest Community Edition runtime so I upgraded using the eclipse plugin install from (http://studio.mulesoft.org/r4/studio-runtimes).
I think this might have had something to do with it as I had previously been using the r4 plugin (http://studio.mulesoft.org/r4/plugin) with the Eclipse hosted 3.5 CE. Possibly the plugin is not backward compatible with the Runtimes.
basically once I completed the install and restarted I upgraded my project to use the new CE (changing the project setting and the flow xml). It worked first time.
Oddly all my Mule-Maven options have disappeared, but that's a separate question.

How to Fix No MBean found for Worklight project?

I have a problem when deploying my Worklight project on the server . It shows the following Error Message :
FWLSE3041E: No MBean found for Worklight project 'MyProject'. Possibly the Worklight runtime web application for Worklight project 'MyProject' is not running. If it is running, use JConsole to inspect the available MBeans.
and when I tried to preview my application it showed this message :
SRVE0777E: Exception thrown by application class 'com.worklight.core.auth.impl.AuthenticationFilter.verifyServletInitialized:420'
I had the same issue using Worklight 6.2 CLI, but recreating the project did not work.
One issue that I had was that worklight did not build a .war-file properly, so I copied the .war-file from a backup.
Edit: This happens regularly in our project now, and we have no idea why. We fix it by invoking any procedure, which makes it work until you restart the server. Worklight must be building something when invoking a procedure that it does not do when building.
I Solved The problem by creating a new Worklight Project and copied all my files , it works just fine :) I used Worklight 6.1 instead of 6.2
I solved this by fixing a recently created security test in
server/conf/authenticationConfig.xml
The problem was I mispelled the Realm name I previously defined.
I solved this problem by deleting the application from the worklight server and rebuild it.
Delete WorklightServerConfig folder in workspace and rebuild your application.
I was able to fix this in MobileFirst 7.0 (Fka Worklight) by opening the Servers view, Window -> Show View -> Servers. Then expanding the MobileFirst Development Server and right click on the project in question, chose delete.
Once you do that go back to the applications' directory in the "apps" directory and right click -> Run As -> Run On MobileFirst Development Server
This should rebuild and deploy the project on the server.
I solved the problem by using ibm jdk not open jdk. My solution is to make sure the env parameters are correct
export JAVA_HOME = $your_ibm_jdk
export PATH + $your_ibm_jdk/bin:$PATH
run java -version to make sure the setting work

Error migrating Worklight 5.0.6 project to 6.1

I am receiving an error trying to upgrade my Worklight project from v5.0.6 to v6.1. I have done all of the pre-migration steps, including removing Tealeaf libraries from the project and adding the new analytics settings to the initOptions.js file.
During the migration, it fails in the step where it is trying to add Worklight Analytics properties to the Worklight properties file. I am getting the following error:
Migrator class com.worklight.upgrader.upgraders.ios.AppAddAnalyticsIPhonePlistXMLUpgrader has failed
Migrating the bcbst_mma_app_wl project from version 5.0.6 to version 6.1.0.0 has failed because Failed reading bcbstmmaappwlMmaIphone-Info.plist
I am not sure what is causing the issue. I thought it may be file permissions since I am using a copy of the actual 5.0.6 project, but the permissions look fine. I have been able to "successfully" migrate the project before by removing that plist file before the upgrade, but the upgrade complained that the file was missing, and it never really worked correctly.
I am using the Consumer edition of Worklight, in case that makes any difference.
EDIT I got the migration to work. I did a chmod 777 on all of the files in the directory and it worked. Not an ideal solution, but it worked. Thanks to #mikerott for pointing me in the right direction.
Are you using a Mac? Often importing projects with the "copy into workspace" checkbox checked will result in files being placed with the Mac "locked" file permission bit set.
Please find the bcbstmmaappwlMmaIphone-Info.plist file in Finder, right-click -> Get Info. See if the "Locked" checkbox is checked. If so, uncheck it and see if you encounter the same problem.
You may have to do this with multiple files.

Worklight console app, update

We're using Worklight 6.1.0.0 / WebSphere 8.0.0.2 (ND/aix).
This seemed pretty close to my question too, but for version 6.0.
I've successfully done uninstall/install to our worklight console war package. However, there is some extra work on re-deploying adapters and such. I was looking for a way to just update the console. Among the ant tasks there is a target 'minimal-update', which sounds like what I'm looking for (is it?). However when all other pieces fell into place, I have an error for mapping the datasources:
ADMA0007E: A validation error occurred in task Mapping resource references to resources. The Java Naming and Directory Interface (JNDI) name is not specified for resource reference jdbc/WorklightDS in module Worklight with EJB name .
Contents of the 'minimal-update' task is pretty much the same as for 'install'.
I tried that as update from websphere admin console (but i should use the ant task - right?), that gave me a wizard screen to map jdbc/WorklightDS from package to jdbc/WorklightDS on server. This left me wondering how could I tell this using the ant task.
The ant target minimal-update of the sample configuration files documented at http://pic.dhe.ibm.com/infocenter/wrklight/v6r1m0/topic/com.ibm.worklight.deploy.doc/devref/c_ant_tasks_sample_config_files.html is meant to update a WAR file already deployed (and not uninstalled). In particular, on WAS, it assumes that the JNDI datasources are in place.
If you have uninstalled the WAR file, you should use the target install instead, provided that your databases were created for Worklight 6.1.
If they were created for a previous version of worklight you must upgrade their schema as well running the target 'databases' (and if it's a production installation, you might want to read all the steps in detail at http://pic.dhe.ibm.com/infocenter/wrklight/v6r1m0/topic/com.ibm.worklight.upgrade.doc/devenv/c_upgrade_to_srvr610_in_production_env.html )

IBM Worklight 6.0 - SRVE0777E: javax.servlet.ServletException: Worklight Project not initialized

I've just installed Worklight 6.0 on Mac OS X Mountain Lion 10.8.4.
I'm trying to build a very simple HelloWorklight app to test the installed environment and I'm getting errors building and deploying it.
I'm getting these errors in Eclipse console:
[2013-07-13 02:11:21] Starting build process: application
'HelloWorklightApp', all environments
[2013-07-13 02:11:21] Application 'HelloWorklightApp' with
all environments build finished.
[2013-07-13 02:11:21] Deploying application
'HelloWorklightApp' with all environments to Worklight Server...
[2013-07-13 02:11:21] Failed to deploy the application to
Worklight server: Worklight module
HelloWorklightProject was not
successfully started. Full details of the error are available from the
Worklight Development Server console.
The Worklight Development Server console in my browser shows:
Application Error
SRVE0777E: Exception thrown by application class
'com.worklight.core.auth.impl.AuthenticationFilter.doFilter:110'
javax.servlet.ServletException: Worklight Project not initialized
at com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:110)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194)
at [internal classes]
I'm truly stuck. On the other hand I'm sure it must be something simple to fix it.
Has anyone got an idea how?
I had a similar problem (at least WDS console error looks the same).
A little bit history:
My problems started, when I updated Worklight to version 6 (with version 5 I had no problems). Some compilation erros were fixed by adding Websphere Library to a project. But my custom authentication still wasn't working.
How I fixed it:
open new workspace in Eclipse
import Worklight project
clean project
restart Eclipse
downgrade compiler compliance level (in Eclipse: Window > Preferences > Compiler and set "Compiler compliance level" to lower version)
rebuild project and try to run it
At this point it started to work. I've spend lots of time to find out that compiler stuff, but still I'm not sure which part requires that.
So we had this issue with 2 macs and it took us a solid day and a half to figure it all out.
We went through a lot of reconfiguring, re-downloading eclipse and worklight.
Make sure your config files from the update are correct. (worklight.prop and authConfig)
This is the big one. Install JDK 1.7 and reference the new JRE 7. When we
were running on Oracle JRE 6, we had a ton of errors and even a Java
Heap memory issue.
Once you install it, it may to be tricky to find the actually path to the JRE.
First, go to Eclipse > Pref > Installed JRE's > Add
Then, add a new standard vm. Click Directory on the next pane and browse to the install path of JRE.
We found it in [name of your HD] > Library > Java > JavaVirtualMachines > jdk1.7.0_25.jdk > Contents > Home > jre
It should load everything it needs and you can click the check box of the new JRE. For good measure, I changed the compiler to 1.7 as well.
The jdk folder may have a slightly diff name depending on what update you have. Hopefully this helps.
I got the same error after deploy an new app deployment.
What I've done on Server is:
delete all application
delete all extra configuration between new server instance and my current instance. In my case it was: applicationMonitor and shared librairy
clean
restart
After that I managed to deploy my application normally
window -> show view -> servers -> server configuration -> HTTP EndPoint -> host
By default the host will be *. Try to change the host as your local machine ip address. for example host = . After changing the host, close the server.xml and then try to rebuild the project.