cancel
Showing results for 
Search instead for 
Did you mean: 

Confusion about third-party-libraries in different versions in CE 71.

Former Member
0 Kudos

Hi

After some research on the use of different versions of third-party-libraries in SAP netweaver CE 7.1, I am actually quite confused and would be happy if someone could shed a light on that subject....

1. Is there a way to tell netweaver CE 7.1 to use a library in my WEB-INFlib-folder by simple configuration?

E.g. we would like to use a third-party-lib in a newer version than the one which is loaded by CE 7.1. Many application server provide a simple configuration option (e.g inside META-INFapplication.xml) where the web as can be forced to use the library inside WEB-INFlib for this application.

2.Is the concept of "heavy loading" described in a blog by Georgi Danov() the answer to question 1.?

Does it also work for other third-party-libraries than hibernate? Does it work at all?

3. In the blog mentioned in question 2, Mr. Danov is talking about "shared libraries". Does this mean, that I have to forget everything about "bundled" and "standard" libraries explained in help.sap.com/CE, if I want to create a heavy loader?

He is referencing another blog () which is two years old? Can I still apply the information there to CE?

4. Are "Bundled libraries" applicable when using different versions of third-party-libraries in CE 7.1?

In "Working with libraries" (http://help.sap.com/saphelp_nwce10/helpdata/en/44/f4e00e56ec0486e10000000a155369/frameset.htm) it says:

"Bundled libraries: These provide resources only to a single enterprise application, and are packed inside the application's EAR file."

=>As I want to provide the lib only to my enterprise application, I will probably have to create a bundled library, right? Does this also work if netweaver CE 7.1 uses a different version of the same library?

5. Do I need Netweaver Developer Studio for creating "bundled" libraries?

Or can I copy the binaries in the WEB-INFlib-folder of my application, deploy it and use it?

6. Is configuration of application-j2ee-engine.xml the right place to reference a third-party-library in a specific version which exists in WEB-INF/lib-folder in my application even if it exists also in another version on netweaver?

=> In the document "Troubleshooting: Finding Missing Parent-Child Relations" it says: "To implement the chain of parent-child relations in the deployment descriptor of the component, use either application-j2ee-engine.xml (for applications) or provider.xml (for libraries and services)."

=> "Creating standard libraries" (http://help.sap.com/saphelp_nwce10/helpdata/en/44/f447a8d62b0484e10000000a155369/frameset.htm9 tells me, that I have to configure the file application-j2ee-engine.xml, too.

=> But in "Working with libraries" (http://help.sap.com/saphelp_nwce10/helpdata/en/44/f4e00e56ec0486e10000000a155369/frameset.htm) it says:

"Standard libraries: These provide resources to all enterprise applications deployed on the server. They are packed in EAR files like the enterprise applications."

=> Does this mean, that I have to force Netweaver CE 7.1 to use a higher version of a certain third-party-library? Does this even work? Do all applications deployed on Netweaver 7.1 have to use this library in the higher version?

It is really confusing to read through the documentation!!! Sorry for that avalanche of questions, but I really hope it will make the issue of using libraries (especially if they exist in different versions on the CE 7.1) a little clearer!

Best regards

Bettina

Accepted Solutions (1)

Accepted Solutions (1)

Benny
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Bettina,

I'll try to answer your questions:

>

> Hi

>

> After some research on the use of different versions of third-party-libraries in SAP netweaver CE 7.1, I am actually quite confused and would be happy if someone could shed a light on that subject....

>

> 1. Is there a way to tell netweaver CE 7.1 to use a library in my WEB-INFlib-folder by simple configuration?

>

> E.g. we would like to use a third-party-lib in a newer version than the one which is loaded by CE 7.1. Many application server provide a simple configuration option (e.g inside META-INFapplication.xml) where the web as can be forced to use the library inside WEB-INFlib for this application.

>

First of all, the appropriate docs are here: [http://help.sap.com/saphelp_nwce10/helpdata/en/44/f4e00e56ec0486e10000000a155369/frameset.htm|http://help.sap.com/saphelp_nwce10/helpdata/en/44/f4e00e56ec0486e10000000a155369/frameset.htm].

Basically what you do is define a lib project in the studio and deploy it do the server. This may be less comfortable then just configuring manually, therefore it work better in larger environments because the server checks that libs are available in all running instances - which it could not do if you manipulate diretories manually (an approach you should never attempt in any SAP envrionment)

> 2.Is the concept of "heavy loading" described in a blog by Georgi Danov() the answer to question 1.?

>

> Does it also work for other third-party-libraries than hibernate? Does it work at all?

>

If Georgi describes it, I hope so, as he is one of our developers who knows best.

> 3. In the blog mentioned in question 2, Mr. Danov is talking about "shared libraries". Does this mean, that I have to forget everything about "bundled" and "standard" libraries explained in help.sap.com/CE, if I want to create a heavy loader?

>

"shared" are all of theses libs, as otherwise they would be specific to an application.

> He is referencing another blog () which is two years old? Can I still apply the information there to CE?

>

This was about anearly version of CE and even Georgi updated the blog this year to talk about slight differences. So yes, this still applies.

> 4. Are "Bundled libraries" applicable when using different versions of third-party-libraries in CE 7.1?

>

> In "Working with libraries" (http://help.sap.com/saphelp_nwce10/helpdata/en/44/f4e00e56ec0486e10000000a155369/frameset.htm) it says:

>

> "Bundled libraries: These provide resources only to a single enterprise application, and are packed inside the application's EAR file."

>

> =>As I want to provide the lib only to my enterprise application, I will probably have to create a bundled library, right? Does this also work if netweaver CE 7.1 uses a different version of the same library?

>

That depends... Your application uses it's own classloader which means it should only use your libs in case there is another version available on the server. But if you're trying to deploy a lib that is used by a service of the server (int that case loaded by the server not your classloader!) I'm not so sure.

> 5. Do I need Netweaver Developer Studio for creating "bundled" libraries?

>

> Or can I copy the binaries in the WEB-INFlib-folder of my application, deploy it and use it?

>

You need the Studio. No way around that. [Edit:] Sorry, misunderstood you here: I thought you want to copy something into the deployed directory on the server! - Of course, any deployment method would do it and though copying binaries seems to be valid. However, I'm checking this currently with development in detail.

> 6. Is configuration of application-j2ee-engine.xml the right place to reference a third-party-library in a specific version which exists in WEB-INF/lib-folder in my application even if it exists also in another version on netweaver?

>

> => In the document "Troubleshooting: Finding Missing Parent-Child Relations" it says: "To implement the chain of parent-child relations in the deployment descriptor of the component, use either application-j2ee-engine.xml (for applications) or provider.xml (for libraries and services)."

>

> => "Creating standard libraries" (http://help.sap.com/saphelp_nwce10/helpdata/en/44/f447a8d62b0484e10000000a155369/frameset.htm9 tells me, that I have to configure the file application-j2ee-engine.xml, too.

>

> => But in "Working with libraries" (http://help.sap.com/saphelp_nwce10/helpdata/en/44/f4e00e56ec0486e10000000a155369/frameset.htm) it says:

>

> "Standard libraries: These provide resources to all enterprise applications deployed on the server. They are packed in EAR files like the enterprise applications."

>

> => Does this mean, that I have to force Netweaver CE 7.1 to use a higher version of a certain third-party-library? Does this even work? Do all applications deployed on Netweaver 7.1 have to use this library in the higher version?

>

>

>

> It is really confusing to read through the documentation!!! Sorry for that avalanche of questions, but I really hope it will make the issue of using libraries (especially if they exist in different versions on the CE 7.1) a little clearer!

>

> Best regards

> Bettina

Could you tell me what you're trying to deploy? I'll try to get Georgi on this....

Regards,

Benny

Edited by: Benny Schaich-Lebek on Nov 5, 2008 1:40 PM

Former Member
0 Kudos

Hi Benny and BalaKrishnan

thank you so much for trying to answer all my questions! We are in the process of certifying our application for use on netweaver CE 7.1. We were told that it is not necessary to use Netweaver Developer Studio for certification, but that it suffices to adapt configuration files inside EAR and WAR.

We are using third-party-libraries (hibernate 3 and others) and therefore I wanted to know how Netweaver CE 7.1 deals with the problem of conflicting versions in general.

Benny, you said:

> Basically what you do is define a lib project in the studio and deploy it do the server. This may be less comfortable then just configuring manually, therefore it work better in larger environments because the server checks that libs are available in all running instances - which it could not do if you manipulate diretories manually (an approach you should never attempt in any SAP envrionment)

>

Do you mean, it is not possible to run an enterprise application on SAP netweaver which has been created according to the JEE specification without Netweaver Developer Studio?

Kind regards

Bettina

Benny
Product and Topic Expert
Product and Topic Expert
0 Kudos

NOpe!

As you can read in the manuals at [Deploying Applications with Third-Party Deployment Tools|http://help.sap.com/saphelp_nwce10/helpdata/en/44/f08b76b5190e8fe10000000a11466f/frameset.htm] it is possible to deploy with other tools, as it is also possible to use ANT scripts, that are popular with most developers.

With "manual" configuration I meant to copy files into server directories. While this should basically work, there is a big difference in the treatment of deployments on SAP: deployments always go to a database and on startup the server checks if it is in synch with the database. If that's not the case it loads that data from the DB. (You actually can see this in the startup phase, when the status of the start in a monitoring tool says "checking binary synch")

This makes sure that in a cluster you are always in the same environment and do not miss one of the copies.

In addition I would strongly recommend to have a look into the SAP component model for Java because that goes far beyond the standard. Your customers using AS Java will all be familiar with SAP deployment tools and SDA (SAP deployment archives). To produce those the Studio (which you can download for a trial from SDN anyways) is most convenient but I think there are scripts available also.

Regards,

Benny

Former Member
0 Kudos

Hi Benny!

Thanks for the clarification. We have already been using the component model in other projects (if you mean this: http://help.sap.com/saphelp_NW04/helpdata/en/1c/bca99c220c0e45a1cae3c4cccf4346/frameset.htm), so am familiar with it.

In this particular project the "heavy loader" creation seems to be working according to what is described in Georgi Danovs blog and another helpful thread (), although I cannot confirm this, because there are still other errors concerning the migration to CE 7.1.

One thing, however, seems to be clear now : If you want to use a special library on CE 7.1., which the CE 7.1 is using as well (but in a different version), you have to use heavy loading and change your EAR (move libraries to special lib-Folder etc.) OR you have to use NWDS and library DC.

Kind regards

Bettina

Answers (1)

Answers (1)

Former Member
0 Kudos

Bettina,

Just thought that I would share my experiences with third-party-libraries in SAP netweaver CE 7.1 and prior releases (NW04s).

I have been using the External Library DCs whenever there is a need for the application to use third-party-libraries. This has been working quite well and has worked in almost all the applications I've developed. I have put up a [blog|] showcasing the same. It explains the third-party-library usage in WebDynpro in NW04s. However, the same works well with EJB DCs, WebDynpro DCs.,. both in NW04s and CE.

May be you can give it a try, in your web (JSF) project..

Updated: Another good example can be found [here|]

Bala

Edited by: BalaKrishnan on Oct 31, 2008 11:28 AM