diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java
index 0e5e1c7d8c6b5588cfdba1fa185b0c3b1bb695fa..b8fbcca3e6274e3a625dcd4ba4440b3f5dc43959 100644
--- a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java
+++ b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java
@@ -30,7 +30,7 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder {
     private String PM_GET_MEASUREMENT_COLLECTION_JOBS;
 
     @Value("${PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID}")
-    private String PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID;
+    private String PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID;
 
     @Value("${PM_MEASUREMENT_COLLECTION_JOB_ADD}")
     private String PM_ADD_MEASUREMENT_COLLECTION_JOB;
@@ -58,17 +58,19 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder {
             .bean(measurementCollectionJobService, "findAllMeasurementCollectionJobs")
             .convertBodyTo( String.class );
 
-        from(PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID)
-            .log(LoggingLevel.INFO, log, PM_GET_MEASUREMENT_COLLECTION_JOB_BY_ID + " message received!")
+        from(PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID)
+            .log(LoggingLevel.INFO, log, PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID + " message received!")
             .to("log:DEBUG?showBody=true&showHeaders=true")
-            .bean(measurementCollectionJobService, "findMeasurementCollectionJobByUuid")
+            .bean(measurementCollectionJobService, "findMeasurementCollectionJobByUuidEagerAsString")
             .convertBodyTo( String.class );
 
         from(PM_ADD_MEASUREMENT_COLLECTION_JOB)
                 .log(LoggingLevel.INFO, log, PM_ADD_MEASUREMENT_COLLECTION_JOB + " message received!")
-                .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal()
+                .to("log:DEBUG?showBody=true&showHeaders=true")
+                .unmarshal()
                 .json(JsonLibrary.Jackson, MeasurementCollectionJobFVO.class, true)
                 .bean(measurementCollectionJobService, "createMeasurementCollectionJob(${body})")
+                .marshal().json( JsonLibrary.Jackson)
                 .convertBodyTo( String.class );
 
         from(PM_UPDATE_MEASUREMENT_COLLECTION_JOB)
@@ -76,6 +78,7 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder {
                 .to("log:DEBUG?showBody=true&showHeaders=true").unmarshal()
                 .json(JsonLibrary.Jackson, MeasurementCollectionJobMVO.class, true)
                 .bean(measurementCollectionJobService, "updateMeasurementCollectionJob(${header.mcjid}, ${body})")
+                .marshal().json( JsonLibrary.Jackson)
                 .convertBodyTo( String.class );
     }
 
diff --git a/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java
index af420a7ae9547ea7099e806e22eec4009bc971f1..ada0cd1946fdc115921d8c38800d3f50c1b5b125 100755
--- a/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java
+++ b/src/main/java/org/etsi/osl/tmf/pm628/reposervices/MeasurementCollectionJobService.java
@@ -6,6 +6,7 @@ import jakarta.validation.Valid;
 import org.etsi.osl.tmf.pm628.api.MeasurementCollectionJobApiRouteBuilderEvents;
 import org.etsi.osl.tmf.pm628.model.*;
 import org.etsi.osl.tmf.pm628.repo.MeasurementCollectionJobRepository;
+import org.hibernate.Hibernate;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
@@ -20,6 +21,9 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
 import java.util.*;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;
 
 @Service
 @Transactional
@@ -277,6 +281,47 @@ public class MeasurementCollectionJobService {
         return resultList;
     }
 
+    @Transactional  
+    public String findMeasurementCollectionJobByUuidEagerAsString(String uuid) throws JsonProcessingException{
+
+      MeasurementCollectionJob mcj = findMeasurementCollectionJobByUuidEager(uuid);
+      ObjectMapper mapper = new ObjectMapper();
+      mapper.registerModule(new Hibernate5JakartaModule());
+      String res = mapper.writeValueAsString(mcj);
+      
+      return res;
+
+    }
+    
+
+    private MeasurementCollectionJob findMeasurementCollectionJobByUuidEager(String id) {
+      if ( id == null || id.equals("")) {
+        return null;
+    }
+    Session session = sessionFactory.openSession();
+    Transaction tx = session.beginTransaction();
+    MeasurementCollectionJob s = null;
+    try {
+        s = (MeasurementCollectionJob) session.get(MeasurementCollectionJob.class, id);
+        if (s == null) {
+            return this.findMeasurementCollectionJobByUuid(id);// last resort
+        }
+
+        Hibernate.initialize(s.getDataAccessEndpoint() );
+        Hibernate.initialize(s.getFileTransferData() );
+        Hibernate.initialize(s.getPerformanceIndicatorGroupSpecification() );
+        Hibernate.initialize(s.getPerformanceIndicatorSpecification());
+        Hibernate.initialize(s.getScheduleDefinition() );
+        Hibernate.initialize(s.getTrackingRecord() );
+        
+        tx.commit();
+    } finally {
+        session.close();
+    }
+    
+    return s;
+    }
+
     public MeasurementCollectionJob findMeasurementCollectionJobByUuid(String uuid){
         log.debug("MeasurementCollectionJob FIND BY UUID");
         Optional<MeasurementCollectionJob> measurementCollectionJob = measurementCollectionJobRepository.findByUuid(uuid);
@@ -310,7 +355,9 @@ public class MeasurementCollectionJobService {
         measurementCollectionJob = this.measurementCollectionJobRepository.save(measurementCollectionJob);
 
         // This may be unnecessary since MeasurementCollectionJobMVO doesn't have the executionState attribute
-        executionStateChanged = !originalExecutionState.equals(measurementCollectionJob.getExecutionState());
+        if ( originalExecutionState!=null) {
+          executionStateChanged = !originalExecutionState.equals(measurementCollectionJob.getExecutionState());          
+        }
 
         if (executionStateChanged) {
             raiseMCJExecutionStateChangeNotification(measurementCollectionJob);
@@ -337,6 +384,8 @@ public class MeasurementCollectionJobService {
         MeasurementCollectionJobRef ref = new MeasurementCollectionJobRef();
         ref.setId(mcj.getUuid());
         ref.setHref(mcj.getHref());
+        ref.setName("MeasurementCollectionJob");
+        
 
         MeasurementCollectionJobCreateEventPayload payload = new MeasurementCollectionJobCreateEventPayload();
         payload.setMeasurementCollectionJob(ref);
diff --git a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java
index c8761b4de9320e0a25d8efb53ba6e7277c39985a..62d067a5307a1a6dc038c2812e7d35f1c1bd89bf 100644
--- a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java
+++ b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java
@@ -866,7 +866,7 @@ public class ServiceRepoService {
 		return res;
 	}
 
-    @Transactional  
+
 	public Service getServiceEager(String id) {
 		if ( id == null || id.equals("")) {
 			return null;