Error while invoking mobilefirst adapter: Invocation of procedure failed - ibm-mobilefirst

I am using:
Mobilefirst platform studio 6.3.0.
I have followed the IBM training modules to create a new mobilefirst adapter.
I am getting an error while trying to invoke a procedure. I have added the required JDBC driver jar file in the server/lib folder. But, I am getting this error.
[ERROR ] FWLSE0035E: Invocation of procedure 'procedure1' failed. [project pocket]
Class com.mysql.jdbc.Driver not found in Worklight platform or project /pocket

Try using mysql-connector-java-5.1.26-bin.jar in the server/lib folder as well in the build path of the project.

Related

"Adapter deployment failed: Could not resolve placeholder" error in IBM MobileFirst 6.3

I'm unable to read a property's value from worklight.properties file.
I added property as publicProtocol=http in wroklight.properties file and used the property in my adapter.xml as <protocol>${publicProtocol}</protocol> but I'm getting the following error:
Adapter deployment failed: Could not resolve placeholder
'publicProtocol'
This works fine for me using IBM MobileFirst Platform Studio 6.3.0.00-20150214-1702
Created a new project with a HTTP adapter.
Added to server\conf\worklight.properties the following: myCustomProperty=http
The server was automatically restarted
Changed adapters\myAdapter\myAdapter.xml as follows and re-deployed the adapter:
- <protocol>http</protocol>
+ <protocol>${myCustomProperty}</protocol>
To verify that it worked I simply:
Right-click the myAdapter folder and selected Run As > Invoke MobileFirst Procedure and click on OK to invoke the default procedure.
A browser window opened with a successful invocation.

Worklight 6.2 - java.lang.NullPointerException

In Worklight 6.2, there is new method to deploy the Worklight Project, which is using IBM Worklight Server Configuration Tool
refer here :
http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.deploy.doc/deploy/c_using_server_config_tool.html
After setup Worklight admin, and deploy Worklight Project WAR through that. From my understanding, the worklight project will be called runtime
I found errors on the Websphere Logs as below:
[10/3/14 0:37:55:758 MYT] 0000007e FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /apps/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/ffdc/server1_6adbbbb2_14.10.03_00.37.55.7436943857084851194341.txt com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters -RE 1123
[10/3/14 0:37:55:758 MYT] 0000007e LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
[10/3/14 0:37:55:769 MYT] 0000007e webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[ServletNameNotFound]: java.lang.NullPointerException
in the http://localhost:9080/worklightconsole/index.html#
Got display as below:
Below is the proof that runtime/worklight project is deployed successfully:
​Next action is to troubleshoot why the runtime/worklight project is not working.
How I can rectify this problem? Thanks.
The exception is in a web container class of WebSphere. You must look at the content of the ffdc file
/apps/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/ffdc/server1_6adbbbb2_14.10.03_00.37.55.7436943857084851194341.txt to see if there are more details in particular the servlet that cannot be found.
But it seems that something is wrong in the Worklight configuration under WAS (viewing the "Servlet not found" error).
The Worklight servlets are in the jar "worklight-jee-library.jar" that is configured as a shared library in WAS.
Without all the WAS logs it is not possible to find the real cause. So you can review the WAS configuration after the deployment by following :
http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.installconfig.doc/admin/t_configuring_websphere_application_server_for_wladmin_manually.html,
http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.installconfig.doc/admin/t_configuring_websphere_application_server_for_oracle_manually_for_wladmin.html,
http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.deploy.doc/admin/t_configuring_websphere_application_server_for_oracle_manually.html,
http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.deploy.doc/admin/t_configuring_websphere_application_server_manually.html
The other reason could be that your Worklight project is not a 6.2 project. How do you build you war file ?

IBM Worklight 6.0 - Internal error occurred during: Worklight application builder

This is my first worklight app. I get this error when I Build All and Deploy after creating the project (without including any code):
An internal error occurred during: "Worklight application builder".
Illegal character in path at index 5: /Todo
Project/console/api/applications/upload
Create a new Worklight project or rename the current project so that there won't be any spaces in the project name. That is: "TodoProject" instead of "Todo Project". Deployment will then pass.
I have opened a defect for this. Thanks.

Error in transporting an application from development worklight to Worklight Server Consumer Edition

I am using IBM Worklight environment. I have created a small application "SampleHybridProject" using Worklight Developer studio and tested it successfully.
Now when I am trying to deploy it on the Worklight Server Consumer Edition, and hitting the following URL: http://mymachine.com:9080/SampleHybridProject/console
I am getting this error in my browser:
Error 404: com.ibm.ws.webcontainer.servlet.exception.NoTargetForURIException: No target servlet configured for uri: /SampleHybridProject/console
I am using Worklight Edition 5.0.6. The Worklight Server is default "WAS with Liberty profile".
Here are the properties that I changed in worklight.properties file.
publicWorkLightHostname=localhost
publicWorkLightProtocol=http
publicWorkLightPort=9080
publicWorkLightContext=/SampleHybridProject
wl.db.type=MYSQL
wl.db.url=jdbc:mysql://mysqlinstalledonmypc:3306/WRKLGHT
wl.db.username=root
wl.db.password=admin
Here are the changes that I made in application-descriptor.xml:
<worklightServerRootURL>http://${local.IPAddress}:9080/SampleHybridProject</worklightServerRootURL>
Can you tell me what I am doing wrong or what I need to do?
I have found the problem and solved it. The problem is I was having this error in console.log file:
Error creating bean with name 'txManager' defined in URL [jar:file:/C:/ProgramData/IBM/Worklight/WAS85liberty-server/wlp/usr/shared/resou‌​rces/lib/worklight-jee-library.jar!/conf/core.xml]: Invocation of init method failed; nested exception is java.lang.LinkageError: loader constraint violation: loader (instance of com/ibm/ws/classloading/internal/UnifiedClassLoader) previously initiated loading for a different type with name "javax/sql/DataSource"
This was because I had a jar in the server/lib folder of my project which was causing this problem. I removed the jar from server/lib folder and redeployed the .war file. Now the console is getting loaded.
Are you getting any deployment errors in your liberty logs? A 404 on the context root generally means either the WAR was not found, or the context root defaults to something other than 'SampleHybridProject'. If the WAR appears to be loading correctly, it will output where it is listening on similar to:
[AUDIT ] CWWKT0016I: Web application available (default_host): http://[hostname]:port/SampleHybridProject/*
If it says the context root is anything other than SampleHybridProject, you can set it in the tag in liberty's server.xml:
<application id="SampleHybridProject" name="SampleHybridProject"
location="SampleHybridProject.war" type="war"
context-root="SampleHybridProject">
...
</application>

Failed Glassfish deploy - "Referencing error: this bundle has no bean of name [ClientBean]"

I'm trying to run the example from this page : GlassFish-to-GlassFish Remote EJB Invocation
But I get this error when I try to deploy the client on glassfish ("asadmin> deploy client-ejb.jar"):
"Exception while deploying the app [client-ejb] : Referencing error: This bundle has no bean of name [ClientBean]"
I need help, thanks.
I encountered a a similar problem when trying to deploy my application (Exception while deploying the app [my-app] : Referencing error : This bundle has no bean of name [myBeanFacade] ) .Rather weird but all that was needed to solve this was to go to the properties of [my-app] under the build category tree, choose compile and tick the compile on save option. Redeployed my application and viola !!
NB [my-app] contains 2 ejb jars and a web application, one of the ejbs is a library in the web app.
This problem occurred because the guy forgot to add the ServiceIF.class reference in client-ejb.jar.
Execute the command:
jar cvf client-ejb.jar test/ServiceIF.class test/ClientIF.class test/ClientBean.class META-INF/glassfish-ejb-jar.xml
get the new .jar and it will work.
In case you are using a deployment descriptor, then the EJB name should be the same in both the descriptor file.
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home>com.ejb.test.HelloHome</home>
<remote>com.ejb.test.HelloObject</remote>
<ejb-class>com.ejb.test.HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
**<ejb-name>Hello</ejb-name>**
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
<glassfish-ejb-jar>
<enterprise-beans>
<ejb>
**<ejb-name>Hello</ejb-name>**
<jndi-name>jndi/Hello</jndi-name>
</ejb>
</enterprise-beans>
</glassfish-ejb-jar>