cancel
Showing results for 
Search instead for 
Did you mean: 

DSD war file generation.

Former Member
0 Kudos

Dear Experts,

I am implementing DSD scenario and did some customisations in it.

I had created the customer project with option..."merge into standard project".

Now if i export both the projects( selecting both ) and deploy at NWA it deploys successfully...

But when i try to download at HH it do not downloads the application.

If someone has some experience on the same please share with me.

Kindly tell me if I am doing something wrong.

Its critical for me...any help will be appreciated.

Regards,

Akhil Rastogi

Edited by: Akhil Rastogi on Mar 31, 2009 3:44 PM

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Akhil,

DSD is an AWT based application and therefore there is no way you can export it or create a war file out of it. Can you please check this. For an AWT app, a jar file should be generated. The same should be uploaded as an AWT Application in NWA and downloaded to the client. Once downloaded, the jar file will be available in %MI_HOME%/lib directory.

Best Regards

Sivakumar

Former Member
0 Kudos

Hi Shiva,

Its creating a jar file only.

I will explain again.....

I have standard project name called as DSD at eclipse and customised one as DSS.

Now I select both the projects to export as Jar( I am not sure I am doing it right or not ).

i select some specific options to export the project.

Like Select main Class, Generate manifest file etc.

I am able to get MDSD.jar file created and successfully deploy at NWA..

But when i assign it as Application component to Mobile device...it do not get install

One more thing when i export the files...it get these warning messages.

JAR export finished with warnings. See details for additional information.

Problem writing /DSD/java/ProjectConfig.properties to JAR: duplicate entry: ProjectConfig.properties

Problem writing /DSD/.classpath to JAR: duplicate entry: .classpath

Problem writing /DSD/.project to JAR: duplicate entry: .project

regards,

Akhil

Edited by: Akhil Rastogi on Apr 2, 2009 9:46 AM

Former Member
0 Kudos

Hi Akhil,

Thanks for clarifying on the jar issue. When you mention application is not installed on the client does it mean that the jar is not downloaded or it is downloaded but not installed. Can you please check that the jar with correct size is present in the lib folder (This will ensure that download is successful). If download is successful and installation has failed, then i suspect that the Manifest file does not have any entries. An AWT application should contain few details in the Manifest file present under the META-INF directory. Check the standard file for the entries and the file you have generated. This should give a clue. If the standard entries are missed, then replace the generated one with the standard one(provided there are no changes done) and try launching the application again.

Best Regards

Sivakumar

Former Member
0 Kudos

Dear Shiva,

You were correct on the part that manifest file has not enough enteries.

When i am trying to export the project after changing something in custom project....it asks for option like 1. Generate new Manifest

2. Use existing Manifest from workspace.

Infact SAP MDSD has Manifest.mf and Manifest_spe.mf and about.class in META-INF folder.

I am only getting manifest.mf that too with very less enteries

Original manifest enteries

Manifest-Version: 1.0

Ant-Version: Apache Ant 1.6.4

Created-By: 1.4.2_12-b03 (Sun Microsystems Inc.)

Implementation-Version: official

Specification-Title: Mobile Direct Store Delivery

Specification-Version: 2.1

Implementation-Title: com.sap.dsd.appctrl.DSDMain

Main-Class: com.sap.dsd.appctrl.DSDMain

Implementation-Vendor-Id: sap.com

ApplicationClass: com.sap.dsd.appctrl.DSDMain

Implementation-Vendor: SAP

Description: Mobile Direct Store Delivery

Specification-Vendor: SAP AG

Build-ID: 2.1.00.112755

Mine manifest

Manifest-Version: 1.0

Main-Class: com.sap.dsd.appctrl.DSDMain

Can you help me out how to correct the same.....i believe this is happening because I am not able to export both projects correctly.

Regards,

Akhil

Edited by: Akhil Rastogi on Apr 2, 2009 1:58 PM

Former Member
0 Kudos

Hi Akhil

Of all the entries mentioned in the standard DSD jar, the following are very important to the MI Client framework

Main-Class: com.sap.dsd.appctrl.DSDMain
ApplicationClass: com.sap.dsd.appctrl.DSDMain
Description: Mobile Direct Store Delivery

In your case two of the three entries are missing and hence this is one of the causes for installation to fail.

The ApplicationClass tell the MI Client which class to invoke when the application button is clicked and this this class will be the one that implements the AwtApplication Interface. The Description property is the text that will be displayed on the UI for the application button.

Therefore, in your generated Manifest file, add the above property. But to ensure that this failure doesn't arise again, You can do either of the following

1. While exporting the jar file, do not create a new one but instead use the existing one

Or

2. Once you have generated the new Manifest file, replace the contents of this file with the one present under SAP DSD

Best Regards

Siva

Former Member
0 Kudos

Dear Shiva,

Sorry for late reply.

I am actually trying to get the existing manifest file but when i try to browse....in the project it do not show me any Manifest file.

Please suggest how to get the original manifest file in project path.

I have seen one more thing.....when i create the enhanced project with merge option..in the build.xml file it is not reflecting the same...

really not able to get the root cause for the same.

Regards,

Akhil

Former Member
0 Kudos

Hi,

I did some changes in properties file of standard project( I named it DSD ).

Now I exported it to the MI-Home/lib folder.

As suggested by you I checked the Manifest file.

It was not of same contents as of original manifest file.

I replaced the new manifest files with original manifest files and again zipped the contents as MDSD2.1

Now when i try to start my Client and click on MDSD application link it hangs.

I went to trace file and got this..It will be great if you can help me out in solving this.

*[20090409 14:36:42:578] I [MI/API/Logging ] ***** LOG / TRACE SWITCHED ON*

*[20090409 14:36:42:578] I [MI/API/Logging ] ***** Mobile Infrastructure version: MI 70 SP 14 Patch 0 Build 200711172123*

*[20090409 14:36:42:578] I [MI/API/Logging ] ***** Current timezone: Asia/Muscat[20090409 14:36:42:578] I [MI/API/Logging ] ***** Current Trace Level: 50*

[20090409 14:36:53:250] E [AppLog/MI/Core ] java.lang.ClassNotFoundException: com.sap.dsd.appctrl.DSDMain

java.lang.ClassNotFoundException: com.sap.dsd.appctrl.DSDMain

* at java.net.URLClassLoader$1.run(URLClassLoader.java:199)*

* at java.security.AccessController.doPrivileged(Native Method)*

* at java.net.URLClassLoader.findClass(URLClassLoader.java:187)*

* at java.lang.ClassLoader.loadClass(ClassLoader.java:289)*

* at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)*

* at java.lang.ClassLoader.loadClass(ClassLoader.java:235)*

* at java.lang.ClassLoader.findSystemClass(ClassLoader.java:717)*

* at com.sap.ip.me.core.Startup.loadClass(Startup.java:466)*

* at com.sap.ip.me.core.Startup.loadClass(Startup.java:358)*

* at com.sap.ip.me.core.MobileSolutionDescriptor.getApplication(MobileSolutionDescriptor.java:465)*

* at com.sap.ip.me.core.ApplicationManager.startApplication(ApplicationManager.java:394)*

* at com.sap.ip.me.awtapps.home.HomeFrame.startApp(HomeFrame.java:2668)*

* at com.sap.ip.me.awtapps.home.HomeFrame.action(HomeFrame.java:706)*

* at java.awt.Component.handleEvent(Component.java:5341)*

* at com.sap.ip.me.awtapps.home.HomeFrame.handleEvent(HomeFrame.java:1011)*

* at java.awt.Window.postEvent(Window.java:1614)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.dispatchEventImpl(Component.java:3631)*

* at java.awt.Component.dispatchEvent(Component.java:3477)*

* at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)*

* at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)*

* at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)*

* at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)*

[20090409 14:36:53:250] E [AppLog/MI/API/Runtime/AWT] Cannot start application MDSD

com.sap.ip.me.core.ApplicationNotAvailableException: Application MDSD cannot be accessed because com.sap.dsd.appctrl.DSDMain cannot be instaniated Reason: com.sap.dsd.appctrl.DSDMain

* at com.sap.ip.me.core.MobileSolutionDescriptor.getApplication(MobileSolutionDescriptor.java:472)*

* at com.sap.ip.me.core.ApplicationManager.startApplication(ApplicationManager.java:394)*

* at com.sap.ip.me.awtapps.home.HomeFrame.startApp(HomeFrame.java:2668)*

* at com.sap.ip.me.awtapps.home.HomeFrame.action(HomeFrame.java:706)*

* at java.awt.Component.handleEvent(Component.java:5341)*

* at com.sap.ip.me.awtapps.home.HomeFrame.handleEvent(HomeFrame.java:1011)*

* at java.awt.Window.postEvent(Window.java:1614)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.dispatchEventImpl(Component.java:3631)*

* at java.awt.Component.dispatchEvent(Component.java:3477)*

* at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)*

* at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)*

* at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)*

* at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)*

Heading 1:h1.If I do not change the Manifest Files i get these errors

My Manifest file has com.sap.dsd.appctrl.DSDMain entry also

*[20090409 14:51:42:343] I [MI/API/Logging ] ***** LOG / TRACE SWITCHED ON*

*[20090409 14:51:42:343] I [MI/API/Logging ] ***** Mobile Infrastructure version: MI 70 SP 14 Patch 0 Build 200711172123*

*[20090409 14:51:42:343] I [MI/API/Logging ] ***** Current timezone: Asia/Muscat[20090409 14:51:42:343] I [MI/API/Logging ] ***** Current Trace Level: 50*

[20090409 14:51:54:656] E [Unknown ] java.lang.ClassNotFoundException: com.sap.dsd.dataaccess.DataAccessBase

* at java.net.URLClassLoader$1.run(URLClassLoader.java:199)*

* at java.security.AccessController.doPrivileged(Native Method)*

* at java.net.URLClassLoader.findClass(URLClassLoader.java:187)*

* at java.lang.ClassLoader.loadClass(ClassLoader.java:289)*

* at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)*

* at java.lang.ClassLoader.loadClass(ClassLoader.java:235)*

* at java.lang.ClassLoader.findSystemClass(ClassLoader.java:717)*

* at com.sap.ip.me.core.Startup.loadClass(Startup.java:466)*

* at com.sap.ip.me.core.Startup.loadClass(Startup.java:358)*

* at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)*

* at java.lang.Class.forName0(Native Method)*

* at java.lang.Class.forName(Class.java:141)*

* at com.sap.dsd.dataaccess.DAOFactory.newInstance(DAOFactory.java:428)*

* at com.sap.dsd.dataaccess.DAOFactory.<init>(DAOFactory.java:329)*

* at com.sap.dsd.dataaccess.DAOFactory.getInstance(DAOFactory.java:312)*

* at com.sap.dsd.dataaccess.DAOFactory.getDAO(DAOFactory.java:255)*

* at com.sap.dsd.buslogic.customizing.CustomizingManagerImp.<init>(CustomizingManagerImp.java:57)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)*

* at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)*

* at java.lang.reflect.Constructor.newInstance(Constructor.java:274)*

* at java.lang.Class.newInstance0(Class.java:308)*

* at java.lang.Class.newInstance(Class.java:261)*

* at com.sap.dsd.buslogic.customizing.CustomizingManagerFactory.createManager(CustomizingManagerFactory.java:49)*

* at com.sap.dsd.buslogic.customizing.CustomizingManagerFactory.newCustomizingManager(CustomizingManagerFactory.java:32)*

* at com.sap.dsd.util.GeneralConstant.<clinit>(GeneralConstant.java:24)*

* at com.sap.dsd.util.FormatUtility.<init>(FormatUtility.java:37)*

* at com.sap.dsd.util.FormatUtility.getInstance(FormatUtility.java:76)*

* at com.sap.dsd.ui.DSDScreen.<init>(DSDScreen.java:43)*

* at com.sap.dsd.ui.tour.Init.<init>(Init.java:32)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)*

* at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)*

* at java.lang.reflect.Constructor.newInstance(Constructor.java:274)*

* at java.lang.Class.newInstance0(Class.java:308)*

* at java.lang.Class.newInstance(Class.java:261)*

* at com.sap.dsd.ui.adapterAWT.ScreenManagerAWT.getScreenForName(ScreenManagerAWT.java:323)*

* at com.sap.dsd.ui.adapterAWT.ScreenManagerAWT.switchScreen(ScreenManagerAWT.java:225)*

* at com.sap.dsd.appctrl.ControllerImpl.nextState(ControllerImpl.java:418)*

* at com.sap.dsd.appctrl.ControllerImpl.startup(ControllerImpl.java:164)*

* at com.sap.dsd.appctrl.DSDMain.activate(DSDMain.java:192)*

* at com.sap.dsd.appctrl.DSDMain.activateApplication(DSDMain.java:110)*

* at com.sap.ip.me.core.ApplicationManager.activateApplication(ApplicationManager.java:1159)*

* at com.sap.ip.me.core.ApplicationManager.startApplication(ApplicationManager.java:401)*

* at com.sap.ip.me.awtapps.home.HomeFrame.startApp(HomeFrame.java:2668)*

* at com.sap.ip.me.awtapps.home.HomeFrame.action(HomeFrame.java:706)*

* at java.awt.Component.handleEvent(Component.java:5341)*

* at com.sap.ip.me.awtapps.home.HomeFrame.handleEvent(HomeFrame.java:1011)*

* at java.awt.Window.postEvent(Window.java:1614)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.dispatchEventImpl(Component.java:3631)*

* at java.awt.Component.dispatchEvent(Component.java:3477)*

* at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)*

* at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)*

* at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)*

* at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)*

[20090409 14:51:54:656] E [Unknown ] java.lang.RuntimeException: error init class com.sap.dsd.dataaccess.DataAccessBase

* at com.sap.dsd.dataaccess.DAOFactory.newInstance(DAOFactory.java:433)*

* at com.sap.dsd.dataaccess.DAOFactory.<init>(DAOFactory.java:329)*

* at com.sap.dsd.dataaccess.DAOFactory.getInstance(DAOFactory.java:312)*

* at com.sap.dsd.dataaccess.DAOFactory.getDAO(DAOFactory.java:255)*

* at com.sap.dsd.buslogic.customizing.CustomizingManagerImp.<init>(CustomizingManagerImp.java:57)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)*

* at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)*

* at java.lang.reflect.Constructor.newInstance(Constructor.java:274)*

* at java.lang.Class.newInstance0(Class.java:308)*

* at java.lang.Class.newInstance(Class.java:261)*

* at com.sap.dsd.buslogic.customizing.CustomizingManagerFactory.createManager(CustomizingManagerFactory.java:49)*

* at com.sap.dsd.buslogic.customizing.CustomizingManagerFactory.newCustomizingManager(CustomizingManagerFactory.java:32)*

* at com.sap.dsd.util.GeneralConstant.<clinit>(GeneralConstant.java:24)*

* at com.sap.dsd.util.FormatUtility.<init>(FormatUtility.java:37)*

* at com.sap.dsd.util.FormatUtility.getInstance(FormatUtility.java:76)*

* at com.sap.dsd.ui.DSDScreen.<init>(DSDScreen.java:43)*

* at com.sap.dsd.ui.tour.Init.<init>(Init.java:32)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)*

* at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)*

* at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)*

* at java.lang.reflect.Constructor.newInstance(Constructor.java:274)*

* at java.lang.Class.newInstance0(Class.java:308)*

* at java.lang.Class.newInstance(Class.java:261)*

* at com.sap.dsd.ui.adapterAWT.ScreenManagerAWT.getScreenForName(ScreenManagerAWT.java:323)*

* at com.sap.dsd.ui.adapterAWT.ScreenManagerAWT.switchScreen(ScreenManagerAWT.java:225)*

* at com.sap.dsd.appctrl.ControllerImpl.nextState(ControllerImpl.java:418)*

* at com.sap.dsd.appctrl.ControllerImpl.startup(ControllerImpl.java:164)*

* at com.sap.dsd.appctrl.DSDMain.activate(DSDMain.java:192)*

* at com.sap.dsd.appctrl.DSDMain.activateApplication(DSDMain.java:110)*

* at com.sap.ip.me.core.ApplicationManager.activateApplication(ApplicationManager.java:1159)*

* at com.sap.ip.me.core.ApplicationManager.startApplication(ApplicationManager.java:401)*

* at com.sap.ip.me.awtapps.home.HomeFrame.startApp(HomeFrame.java:2668)*

* at com.sap.ip.me.awtapps.home.HomeFrame.action(HomeFrame.java:706)*

* at java.awt.Component.handleEvent(Component.java:5341)*

* at com.sap.ip.me.awtapps.home.HomeFrame.handleEvent(HomeFrame.java:1011)*

* at java.awt.Window.postEvent(Window.java:1614)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.postEvent(Component.java:3895)*

* at java.awt.Component.dispatchEventImpl(Component.java:3631)*

* at java.awt.Component.dispatchEvent(Component.java:3477)*

* at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)*

* at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)*

* at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)*

* at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)*

* at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)*

Regards,

Akhil

Edited by: Akhil Rastogi on Apr 9, 2009 4:52 PM

Edited by: Akhil Rastogi on Apr 9, 2009 4:55 PM

Edited by: Akhil Rastogi on Apr 9, 2009 4:56 PM

Edited by: Akhil Rastogi on Apr 9, 2009 4:58 PM

Former Member
0 Kudos

Hi Akhil,

Can you please check in your DSD jar file that the class com.sap.dsd.appctrl.DSDMain exists in exactly the same package and also if this class contains a Main Method

Best Regards

Siva

Former Member
0 Kudos

Dear Shiva,

I checked in my exported jar file.

I have the required package and main method in place.

public static void main(String[] args) {

DSDMain instance = new DSDMain();

instance.initApplication();

instance.activateApplication();

}

I am telling you the procedure I am following....

I get a project ( Standard DSD ) from software CD of MDSD2.1 in Enhancement folder MDSDSRC.zip

I changed a logic of standard code ..

and now exported the same standard file..

I had actually right now added META-INF folder of original MDSD2.1 to project structure.

So now when it ask for existing metainf..i can chose the metainf.mf file also.

but when i put this exported file( I had named it MDSD2.1 in lib folder and try to run the application the same error comes.

Is something missing during export.

Regards,

Akhil