cancel
Showing results for 
Search instead for 
Did you mean: 

does not support public parts with purpose assembly...

Former Member
0 Kudos

Hi,

When building a component, I'm getting the following error:

Server Component/Library DC does not support public parts with purpose 'assembly'.

Error: Build stopped due to an error: Server Component/Library DC does not support public parts with purpose 'assembly'.

Build plugin finished at 2011-03-24 12:12:40 GMT+01:00 (CET)

Total build plugin runtime: 0.311 seconds

Build finished with ERROR

To be more precise, one dc uses another from a public part that is "assembly" - so it's made the way it should be (both dc's are libraries, one java dc and the second one is server library)

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Do you have any ideas now Rolf? Anybody?

Regards,

falnik

rolf_paulsen
Active Participant
0 Kudos

Hi

which version of NWDS? (server library<7.20 or even 7.1?)

DC-type, PPs and dependencies preciesely per DC?

Regards

Rolf

Former Member
0 Kudos

NWDS 2.0.16 - server library 7.0

first DC type -J2EE Server Component Library, has two Public Parts, from which one references the Public Part of the second DC (which DC Type is Java) and this Public Part has purpose assembly, the other one is compilation

second DC type - Java, has three PP - two with purpose assembly and one with purpose compilation. One from the first two mentioned, is being referenced by the first DC

rolf_paulsen
Active Participant
0 Kudos

Hi,

we are with NWDS 7.20 but afaik the "J2EE Server Component Library" in your version was replaced by Enterprise Application DCs in the meantime, so it is quite simple:

An assambly PP on a J2EE Server Component Library really does not make sense. The J2EE Server Component Library is the final assembly unit. You may use such a DC in two ways:

1. You want to use the classes that are bundled into the J2EE Server Component Library for compilation in another DC (Java or EJB). To achieve this you may create a COMPILATION PP on the J2EE Server Component Library that references compilation PP e.g. of your java DC. (The alternative is to let the using java DC directly reference the compilation PP of your Java DC.)

2. You have another assembly unit - e.g. an Enterprise application or another J2EE Server Component Library - that needs the classes in your J2EE Server Component Library at runtime. This is done by an application reference (in 7.20 defined in META-INF/application-j2ee-engine.xml of the DC that uses your J2EE Server Component Library). At runtime, the result is that your (initial) J2EE Server Component Library is the "parent class loader" of a using DC.

So indeed, there is no need for a PP of type assembly for a J2EE Server Component Library. This DC does not contrubute anything for assembly into another DC.

Rework your dependencies and PPs. [This PDF document|http://www.google.de/url?sa=t&source=web&cd=21&ved=0CBwQFjAAOBQ&url=http%3A%2F%2Fwww.sdn.sap.com%2Firj%2Fscn%2Findex%3Frid%3D%2Flibrary%2Fuuid%2F60d99678-1a29-2d10-94b4-9d9a67b7199b%26overridelayout%3Dtrue&ei=C1aSTZzgHsj0sga6l53QBg&usg=AFQjCNFGx2NeVkfWlnh0wGKsMasL95g18A] may be helpful.

Cheers,

Rolf

Former Member
0 Kudos

Hi Rolf,

I changed PP and references as you suggested, from assembly to compilation. Now the projects compile correctly and deploy without failure, but when I run my app, it crashes and I get an exception:

java.lang.NoClassDefFoundError: com/auth/db/ProcessAccess

And this class "ProcessAccess" is contained within the Java DC, which is being referenced by the J2EE Server Library and that library is being used in a WebDynpro DC, where I use that class.

Please do help me out with this one.

Regards,

falnik

rolf_paulsen
Active Participant
0 Kudos

Hi falnik,

obviously the web dynpro does not have the correct dependency to the J2EE Server Library. The WD DC must have a "Runtime" dependency to the J2EE Server Library. In 7.20 this is a checkbox on the Dependencies tab of the WD DC.

Just another link:

[http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/70d2638c-4b04-2d10-d2a3-992fdf1e3d55]

Regards,

Rolf

Former Member
0 Kudos

Hi Rolf,

The problem is not in the dependcy in WD DC; in the J2EE Server Library Component, in the deployable file *.sda, there is no jar that is from the Java DC. So the problem is that the public part from Java DC is not assembled with the J2EE Server Library Component as the archive does not contain any jar that is from the Java DC.

So the question is - why?

Regards,

falnik

rolf_paulsen
Active Participant
0 Kudos

Hi falnik

this looks strange. I suppose the pp-jar is built correctly in the gen/default/public folders of the java DC? Are the entities managed in the PP?

Unfortunately in 7.20 there are no Java EE libraries, only EAR libraries so I cannot try out with Java EE libs.

But if a Java EE server lib depends on an assembly PP this assembly PP should be bundled.

Maybe you simply can change from Java EE server library to EAR?

Regards

Rolf