cancel
Showing results for 
Search instead for 
Did you mean: 

Error in Synchronization - Unsupported major.minor version 52.0

Former Member
0 Kudos

Hi All,

We have SAP NWDI NW 7.4 running in our landscape, We are running synchronization service for one track and see below error -

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/sap/tc/buildcontroller/CBSBuildController : Unsupported major.minor version 52.0#

Checking on some thread, It looks like Java issue but not sure where we need to upgrade Java Version or any parameter we need to adjust.

Below are Java details at OS level of SAP NWDI server ->

INFO: [OS: Linux] [VM vendor: SAP AG] [VM version: 1.6.0_85] [VM type: SAP Java Server VM]

java -version

java version "1.6.0_24"

Also I was checking 2238332 which shows that our java compiler is mentioned as 52 in configuration where as we have SAP JVM 1.6, it should be 50.

As upgrading SAPJVM now is not an option, We are looking for some way to set value of java compiler in CBS to 50.

Please suggest what can we do to resolve this issue.

Regards,

Shivam

Accepted Solutions (0)

Answers (1)

Answers (1)

Szabolcs_Renyo
Advisor
Advisor
0 Kudos

Hi Shivam,

Please take a look at the following blog:

Best regards,

Szabolcs

Former Member
0 Kudos

Thank you Renyo, Now I have got cause of this issue.

We have SAP JVM 1.6 running on system as NWDI is NW 7.4 and SCAs which we are going to synchronize for our track are NW 7.5.

So to solve this issue, I think we have to upgrade SAP JVM to 1.8 on our server or upgrade SAP NWDI system to 7.5 which we think is not possible at this time.

Do you think, There is any other way to complete this synchronization. We want to have two SCAs KMC-BC and KMC-CM DCs to be available in SAP NWDS for developers to work.

We are also using CM services not CMS in NWDI.

We also see import service available in NWDI which I am not sure we can use in this scenario, Also when we go to import service to see if we can import these two SCAs (KMC-BC & KMC-CM) in NWDI, We get message " Use Synchronization Service, Import Service use not recommended".

Regards,

Shivam

former_member189220
Active Contributor
0 Kudos

Hello Shivam,

"So to solve this issue, I think we have to upgrade SAP JVM to 1.8 on our server or upgrade SAP NWDI system to 7.5 which we think is not possible at this time."

Actually nothing like this is needed to be done from your side.

The version of the NWDI might be any. This means NO upgrade of the NWDI is needed!

For more details please refer to:

http://scn.sap.com/community/nwdi/blog/2014/03/26/nwdi-vs-nwdi-content

Ervin explaned here in very good details which part of the scenario, which version, with which has to be consistent. The NWDI might be any version.

You do not need to upgrade the JDK / JVM neither. You might install 50 different JDK if it is needed and use for a particular task the JDK that has to be used! With one particular NWDI you might build and transport customizations for many different component versions! Otherwise you will have to maintain different NWDI with particular JDK for transporting particular customizations that will run over particular NW AS Java version. (I do believe you do understand it has never been designed to be this way)

Yes, you do need to install JDK 1.8 and please note that this particular JDK 1.8 requires to run on x64bit CPU. So the NWDI server has to run on a hardware that has a x64 bit CPU.

The next is just configuration settings for the usage of the correct JDK for the particular build process. As Szabolcs has thoroughly explained in the blog, you need to:

1. define the Two CBS Service properties (in NWA):

  • BUILD_TOOL_JDK_HOME
  • JDK_HOME_PATHS

and

2. define the Build Variant in the development configuration track (regardless whether you do use CMS or CM Services). This is the principle you need to follow.

For your particular scenario

  • BUILD_TOOL_JDK_HOME = C:\Java\java8
  • JDK_HOME_PATHS = JDK1.8.0_HOME=C:\Java\JDK1.8; JDK1.6_HOME=C:\Java\JDK1.6; default=C:\Java\JDK1.6

The BUILD_TOOL_JDK_HOME should point to the HIGHEST JDK version, having installed, on your NWDI server.

The JDK_HOME_PATHS should have as a string the paths to all of yours JDKs that you will ever use in the NWDI. So in the above example, what I have wrote, the default will be used when no Build Variant is defined.

But if you do use more JDKs let say you do transport changes for all the NW AS Version after 7.0x then the JDK_HOME_PATHS will look like this...

JDK_HOME_PATHS = JDK1.8.0_HOME=C:\Java\JDK1.8; JDK1.6_HOME=C:\Java\JDK1.6; JDK1.5_HOME=C:\Java\JDK1.5; JDK1.4_HOME=C:\Java\JDK1.4;  default=C:\Java\JDK1.6

Here the default is 1.6 which means that if there is no Build Variant configured in the track this JDK will be used! Hence if you do transport changes for 7.1 and you do not define Build Variant the CBS will try to build your components with JDK 1.6 (if this is set as default) . Of course this will lead to error similar to what you have observed:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/sap/tc/buildcontroller/CBSBuildController : Unsupported major.minor version 50.0#

It is 50 because this corresponds to JDK 1.6 as per the well-known notification...

1.1 = <45.3>

1.2 = <46.0>

1.3 = <47.0>

1.4 = <48.0>

1.5 = <49.0>

1.6 = <50.0>

1.7 = <51.0>

1.8 = <52.0>

IBM Runtime Java error: Unsupported major.minor - UnsupportedClassVersionError - United States

The track for 7.1 has to use JDK 1.5.

For your initially reported message:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/sap/tc/buildcontroller/CBSBuildController : Unsupported major.minor version 52.0#

is explained with the same reason - you have not configured the

  • BUILD_TOOL_JDK_HOME
  • JDK_HOME_PATHS

and/or Build Variant in the track correctly.



All in all you need to do is to make sure to:

1. define in the NWA

  • BUILD_TOOL_JDK_HOME
  • JDK_HOME_PATHS

as explained in the blog.


2. define Build Variant for the track with 7.50

Navigate through CM Services >>> in window "Development Configuration Management" please select your track and after that select tab "Software Component Definition"


There you will see "Build Options for Software Component"

In this table you have to add the build variant for this particular track which is a variable that points the variable_path (not the path it self but the variable) to the JDK 1.8 (because you will build NW AS 7.50 SCAs)

com.sap.jdk.home_path_key=JDK1.8.0_HOME


The build variant should be defined for the other tracks accordingly to the version of the SCAs and NW AS Java...

7.5x = JDK 1.8.X = 52.0

7.4X = JDK 1.6.X = 50.0

7.3X = JDK 1.6.X = 50.0

7.2X = JDK 1.6.X = 50.0

7.1X = JDK 1.5.X = 49.0

7.0X = JDK 1.4.X = 48.0


Regards,