diff --git a/java/src/boarderGateway/CoAPClient.java b/java/src/boarderGateway/CoAPClient.java
index 8d4adf4ff4a054e1429d669deaac2e712b445d20..b9a067820ee60813ba770a0f288fc04fa7b5d9e9 100644
--- a/java/src/boarderGateway/CoAPClient.java
+++ b/java/src/boarderGateway/CoAPClient.java
@@ -4,10 +4,14 @@ import java.io.ByteArrayOutputStream;
 import org.eclipse.californium.core.CoapClient;
 
 import co.nstant.in.cbor.CborBuilder;
+import co.nstant.in.cbor.CborDecoder;
 import co.nstant.in.cbor.CborEncoder;
 import co.nstant.in.cbor.CborException;
 import boarderGateway.CoAPRessources.*;
 
+import org.apache.commons.codec.binary.Hex;
+
+import com.sun.xml.internal.fastinfoset.algorithm.HexadecimalEncodingAlgorithm;
 
 public class CoAPClient {
 
@@ -17,28 +21,34 @@ public class CoAPClient {
 		ByteArrayOutputStream baos = new ByteArrayOutputStream();
 		try {
 			new CborEncoder(baos).encode(new CborBuilder()
-			//	.add("MyClient Name")
-			//   .addArray()                 // add array
-			//        .add("Para11")
-			//        .add("string")
-			//        .end()
-			//    .addArray()
-			//    	.add("Para22")
-			//    	.add("integer")
-			//    	.end()
-			
-				.add("My String value")
-				.add(1234)
+			.addArray()
+				/*.add("Neuer Test")
+			    .addArray()                 // add array
+			        .add("Parameter 1")
+			        .add("float")
+			        .end()
+			    .addArray()
+			    	.add("String Parmeter 2")
+			    	.add("string")
+			    	.end()
+			    */
+			    	
+		
+				.add("1")
+				.add(2300)
+		
+			    .end()
 			    .build());
 		} catch (CborException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
-		
+		//System.out.println("String: "+baos.toString());
+		System.out.println("Byte: "+Hex.encodeHexString(baos.toByteArray()));
 		byte[] encodedBytes = baos.toByteArray();
 		
 		CoapClient client = new CoapClient("coap://localhost/data");
-		client.post(encodedBytes, 0);
+		client.put(encodedBytes, 0);
 
 	}
 
diff --git a/java/src/boarderGateway/CoAPRessources.java b/java/src/boarderGateway/CoAPRessources.java
index 9986d2be17b6f713998f8f76b79aa6a939f069da..6439e8e8e2f34d986c5ec82acfb21de6119a0bb0 100644
--- a/java/src/boarderGateway/CoAPRessources.java
+++ b/java/src/boarderGateway/CoAPRessources.java
@@ -57,7 +57,10 @@ public class CoAPRessources {
 					List<String> paras = new ArrayList<String>();
 					List<String> types = new ArrayList<String>();
 					
+					// Gehe zum ersten Token. Überspringe erstes "["
 					myCborParser.nextToken();
+					myCborParser.nextToken();
+					
 					String name = myCborParser.getText();
 					System.out.println("Name: "+name);
 					
@@ -85,6 +88,8 @@ public class CoAPRessources {
 							if (!myCborParser.getText().equals("]")){
 								errorOccurred = true;
 							}
+						}else if (myCborParser.getText().equals("]")) {
+							// CBOR Ende
 						}else{
 							// Kein (korrektes) Array in CBOR gefunden
 							errorOccurred = true;
@@ -113,6 +118,8 @@ public class CoAPRessources {
 				}
 				
 			}else{
+				// Client nicht erlaubt - Speichere in tbl_unregistered
+				database.storeUnregisteredClient(source_address);
 				exchange.respond(ResponseCode.UNAUTHORIZED);
 			}
 		}	
@@ -145,6 +152,9 @@ public class CoAPRessources {
 					byte payload[] = exchange.getRequestPayload();
 					CBORParser myCborParser = f.createParser(payload);
 					
+					//Springe zum ersten Token
+					myCborParser.nextToken();
+					
 					// Erhalte Reihenfolge von String & Integer 
 					List<String> types = database.getClientParamsTypeList(source_address);
 					for (int i = 0; i < types.size();i++){
diff --git a/java/src/boarderGateway/CoAPServer.java b/java/src/boarderGateway/CoAPServer.java
index 6cfc692444b82e861d4c206904668538e1808467..116d779694e6cabb01e642439137ac979da0e74b 100644
--- a/java/src/boarderGateway/CoAPServer.java
+++ b/java/src/boarderGateway/CoAPServer.java
@@ -3,6 +3,8 @@ package boarderGateway;
 import org.eclipse.californium.core.CoapServer;
 
 import boarderGateway.CoAPRessources.*;
+import boarderGateway.CoAPTestRessources.*;
+
 
 public class CoAPServer {
 
@@ -10,9 +12,20 @@ public class CoAPServer {
 		// TODO Auto-generated method stub
 
 		CoapServer server = new CoapServer();
-	      
-        server.add(new RegisterRessource());
-        server.add(new DataRessource());
+		
+		if (args.length > 0){
+			if (args[0].equals("test")){
+				server.add(new RegisterRessourceTest());
+		        server.add(new DataRessourceTest());
+			}else{
+				server.add(new RegisterRessource());
+		        server.add(new DataRessource());
+			}
+		}else{
+			server.add(new RegisterRessource());
+	        server.add(new DataRessource());
+		}
+		
         server.start();
 	}
 
diff --git a/java/src/boarderGateway/CoAPTestRessources.java b/java/src/boarderGateway/CoAPTestRessources.java
new file mode 100644
index 0000000000000000000000000000000000000000..a6c42f9614827d0dc9f3e5d80449cc253f533acf
--- /dev/null
+++ b/java/src/boarderGateway/CoAPTestRessources.java
@@ -0,0 +1,160 @@
+package boarderGateway;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.californium.core.CoapResource;
+import org.eclipse.californium.core.coap.CoAP.ResponseCode;
+import org.eclipse.californium.core.server.resources.CoapExchange;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.cbor.CBORConstants;
+import com.fasterxml.jackson.dataformat.cbor.CBORFactory;
+import com.fasterxml.jackson.dataformat.cbor.CBORParser;
+
+import co.nstant.in.cbor.*;
+import co.nstant.in.cbor.decoder.UnicodeStringDecoder;
+import co.nstant.in.cbor.model.*;
+
+public class CoAPTestRessources {
+	
+
+	public static class RegisterRessourceTest extends CoapResource{
+		
+    	public RegisterRessourceTest(){
+    		super("register");
+        	getAttributes().setTitle("Client Registrierung");
+    	}
+
+		
+		@Override
+		public void handlePOST(CoapExchange exchange) {			
+			List<String> allowedTypes = Arrays.asList("string", "integer", "float");
+			boolean errorOccurred = false;
+
+			// TODO Auto-generated method stub
+			CBORFactory f = new CBORFactory();
+			String source_address = exchange.getSourceAddress().getHostAddress();
+			System.out.println("Received POST on /register from "+source_address);
+			
+				try {
+					// Lade erhaltenen Bytecode in CBOR Parser
+					byte payload[] = exchange.getRequestPayload();
+					CBORParser myCborParser = f.createParser(payload);
+		
+					List<String> paras = new ArrayList<String>();
+					List<String> types = new ArrayList<String>();
+					
+					myCborParser.nextToken();
+					myCborParser.nextToken();
+					
+					String name = myCborParser.getText();
+					System.out.println("Name: "+name);
+					
+					// Lese Arrays aus: [ "Parameter Name" , "Datentyp"]
+					String para = "";
+					String type = "";
+					
+					// While Schleife, bis zum Ende der CBOR Nachricht 
+					while (myCborParser.nextToken() != null){
+						// Array Beginn
+						if (myCborParser.getText().equals("[")){
+							para = myCborParser.nextTextValue();
+							type = myCborParser.nextTextValue();
+							
+							// Prüfe ob Typ supported wird.
+							if (allowedTypes.contains(type)){
+								paras.add(para);
+								types.add(type);
+								System.out.println("Added Para "+para+" of Type "+type);
+							}else{
+								errorOccurred = true;
+							}
+							
+							// Nächstes Token muss Array schließen, ansonsten Fehler.
+							myCborParser.nextToken();
+							if (!myCborParser.getText().equals("]")){
+								errorOccurred = true;
+							}
+						}else if (myCborParser.getText().equals("]")) {
+							// CBOR Ende
+						}else{
+							// Kein (korrektes) Array in CBOR gefunden
+							errorOccurred = true;
+						}
+					}
+					
+					if (!errorOccurred){
+						exchange.respond(ResponseCode.CREATED);
+					}else{
+						exchange.respond(ResponseCode.BAD_REQUEST);
+					}
+					
+				} catch (JsonParseException e) {
+					// TODO Auto-generated catch block
+					exchange.respond(ResponseCode.BAD_REQUEST);
+					e.printStackTrace();
+				} catch (JsonMappingException e) {
+					// TODO Auto-generated catch block
+					exchange.respond(ResponseCode.BAD_REQUEST);
+					e.printStackTrace();
+				} catch (IOException e) {
+					// TODO Auto-generated catch block
+					exchange.respond(ResponseCode.BAD_REQUEST);
+					e.printStackTrace();
+				}
+		}	
+    }
+
+	public static class DataRessourceTest extends CoapResource{
+    	public DataRessourceTest(){
+    		super("data");
+    
+        	getAttributes().setTitle("Datenuebertragung");
+    	}
+    	
+    	
+
+		@Override
+		public void handlePUT(CoapExchange exchange) {
+			// TODO Auto-generated method stub
+			
+			// Ermittle letzte registrierte ID zur Source Address
+			CBORFactory f = new CBORFactory();
+			String source_address = exchange.getSourceAddress().getHostAddress();
+			System.out.println("Received PUT on /data from "+source_address);
+			boolean errorOccurred = false;
+			
+			List<String> values = new ArrayList<String>();
+			
+				try {
+					byte payload[] = exchange.getRequestPayload();
+					CBORParser myCborParser = f.createParser(payload);
+					
+					// Erhalte Reihenfolge von String & Integer 
+					
+					while (myCborParser.nextToken() != null){
+						System.out.println(myCborParser.getValueAsString(""));
+					}
+					
+					
+					exchange.respond(ResponseCode.CHANGED);
+						
+					
+				} catch (IOException e) {
+					// TODO Auto-generated catch block
+					exchange.respond(ResponseCode.INTERNAL_SERVER_ERROR);
+				}
+		}
+
+    }
+}
diff --git a/java/src/boarderGateway/MySQL.java b/java/src/boarderGateway/MySQL.java
index 9dda1d20cfa3c7f5da6d6993bec735d18a5b1237..06c7b35db7c40dd2a9d260143b330ed0e75b3995 100644
--- a/java/src/boarderGateway/MySQL.java
+++ b/java/src/boarderGateway/MySQL.java
@@ -20,6 +20,7 @@ public class MySQL {
 	public static final String TBL_PARAMS = "tbl_parameter";
 	public static final String TBL_DATA = "tbl_data";
 	public static final String TBL_ADDRESSES = "tbl_addresses";
+	public static final String TBL_UNREGISTERED = "tbl_unregistered";
 	
 	private Connection conn = null;
 	private Statement statement = null;
@@ -96,6 +97,7 @@ public class MySQL {
 			System.out.println(query);
 			this.statement.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
 			int lastID = this.getLastInsertedID(this.statement.getGeneratedKeys());
+			System.out.println("Last ID: "+lastID);
 			if (lastID > 0){
 				for ( int i = 0; i<params.size(); i++){
 					query =  "INSERT INTO "+MySQL.TBL_PARAMS+"(fid_register, param, type) VALUES("+lastID+", '"+params.get(i)+"', '"+types.get(i)+"')";
@@ -194,6 +196,22 @@ public class MySQL {
 		return parameters;
 	}
 	
+	public void storeUnregisteredClient(String clientAddress){
+		String query = "SELECT * FROM "+MySQL.TBL_UNREGISTERED+" WHERE clientAddress = '"+clientAddress+"'";
+		try {
+			ResultSet rs = this.statement.executeQuery(query);
+			// True if not empty
+			if (!rs.next()){
+				query = "INSERT INTO "+MySQL.TBL_UNREGISTERED+"(clientAddress) VALUES('"+clientAddress+"')";
+				this.statement.executeUpdate(query);
+			}
+		} catch (SQLException e) {
+			// TODO Auto-generated catch block
+			// Do Nothing
+		}
+			
+	}
+	
 	private int getLastInsertedID(ResultSet keys){
 		try {
 			keys.next();