title: Malformed URL no protocol error
body: <pre><code>java.net.MalformedURLException: no protocol: "localhost/uatpw/ActiveTransaction"?isx=E13F42EC5E38
      at java.net.URL.&lt;init&gt;(URL.java:567)
      at java.net.URL.&lt;init&gt;(URL.java:464)
      at java.net.URL.&lt;init&gt;(URL.java:413)
  </code></pre>
  
  <p>Malformed URL exception when reading data from url containing localhost.</p>
  
  <p>Actually my program is as below</p>
  
  <pre><code>package bll.sap;
  
  import java.net.MalformedURLException;
  
  import utility.PropertyUtility;
  
  public class GetActiveData 
  {
      public static void main(String[] args) {
  
          String sapURL = "";
  
          try {
  
  
              sapURL = PropertyUtility.getSapURL();
  
  
              //Get Summary Data
              SapDataSync sapDataSync = new SapDataSync();
  
              //sapDataSync.readTransactionJsonFromUrl(sapURL+"?isx=false");
              sapDataSync.readTransactionJsonFromUrl(sapURL+"?isx=E13F42EC5E38");
  
              } 
          catch(MalformedURLException me)
          {
              me.printStackTrace();
          }   
          catch (Exception e) {
                  e.printStackTrace();
          }
      }
  
  
  
  
  
  
  
  
  
  }
  </code></pre>
  
  <p>AND</p>
  
  <pre><code>package bll.sap;
  
  
  
  
      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.InputStreamReader;
      import java.net.URL;
      import java.nio.charset.Charset;
      import java.util.ArrayList;
      import java.util.Date;
      import java.util.List;
  
      import net.sf.json.JSONArray;
      import net.sf.json.JSONException;
      import net.sf.json.JSONObject;
      import utility.Utility;
  
      import com.google.code.morphia.Datastore;
  
      import dal.GetMorphiaDB;
  
      public class SapDataSync 
      {
  
          private void saveSapTransaction(List&lt;TransactionUnit&gt; sapTransaction){
              GetMorphiaDB morphia;
              try {
                  morphia = GetMorphiaDB.getInstance();
                  Datastore ds = morphia.getDs();
                  ds.save(sapTransaction);
              }catch (Exception e) {
                  e.printStackTrace();
              }
          }
  
          private void createSapTransaction(String transactionJson){
              JSONObject jsonObj = JSONObject.fromObject(transactionJson);
  
              JSONArray transactionUnits = jsonObj.getJSONArray("TRANSACTION");
  
  
              List&lt;ActiveUnit&gt; transactionList = new ArrayList&lt;ActiveUnit&gt;();
              for(int i = 0; i &lt; transactionUnits.size() ; i++){
                  JSONObject jsn = transactionUnits.getJSONObject(i);
                  JSONObject jsnFeed = transactionUnits.getJSONObject(i);
  
                  ActiveUnit transactionUnit = new ActiveUnit(
                          jsn.getString("listEditions"),
                          jsn.getString("listPackage"),
                          //Double.parseDouble(jsn.getString("YIELD")),
                          //Double.parseDouble(jsn.getString("QUANTITY")),
                          //Double.parseDouble(jsn.getString("VALUE")),
                          jsn.getString("referenceID")
                          //jsn.getString("PRICEGROUP"),
                          //jsn.getString("PAGE"),
                          //Utility.getCalendarTime(jsn.getString("PUBDATE"), "dd-MM-yyyy"),
                          //jsn.getString("CLIENTNAME"),
                          //jsn.getString("CLIENTCODE"),
                          // new Date().getTime(),
                           //jsn.getString("BOOKINGUNITNAME"),
                              //jsn.getString("BCCNAME"),
                              //jsn.getString("PAGENAME"),
                          //  jsn.getString("PRICEGROUPNAME"),
                          //  jsn.getString("ORDER"),
                          //  jsn.getString("PAGE_LH_RH")
                          );
                  transactionList.add(transactionUnit);
                  System.out.println(transactionList);    
              }
  
              System.out.println(transactionList.size());
              if (transactionList.size() &gt; 0) {
                  //saveSapTransaction(transactionList);
              }
  
          }
  
          public void readTransactionJsonFromUrl(String url) throws IOException, JSONException {
              InputStream is = new URL(url).openStream();
              try {
                BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
                StringBuilder sb = new StringBuilder();
                int cp;
                while ((cp = rd.read()) != -1) {
                  sb.append((char) cp);
                }
                createSapTransaction(sb.toString());
              } finally {
                is.close();
              }
            }
  
      }
  </code></pre>
  
  <p>AND</p>
  
  <pre><code>package bll.sap;
  
  import java.io.Serializable;
  import java.util.Date;
  
  import org.bson.types.ObjectId;
  
  import com.google.code.morphia.annotations.Entity;
  import com.google.code.morphia.annotations.Id;
  
  @Entity("SapTransaction")
  public class ActiveUnit implements Serializable {
  
      private static final long serialVersionUID = 1L;
  
      @Id
      private ObjectId id;
      private Long  tilCreationDate;
      private String clientName;
      private String clientCode;
      private String listEditions;
      private Long date;
      private String listPackage;
      private String bookingUnitName;
      private String referenceID;
      private String bccName;
      private String page;
      private String pageName;
      private String priceGroup;
      private String pgName;
      private Double yield;
      private Double qty;
      private Double value;
      private String order;
      private String pageType;
  
      public ActiveUnit() {
      }
      public ActiveUnit(String listEdtions, String listPackage, /*Double yield,
              Double qty, Double value,*/ String referenceID  /*, String priceGroup,
              String page, Long date,String clientName,
              String clientCode,Long  tilCreationDate,String bookingUnitName,String bccName,String pageName,String pgName,String order,String pageType*/) {
          this.listEditions = listEdtions;
          this.listPackage = listPackage;
          //this.yield = yield;
          //this.qty = qty;
          //this.value = value;
          this.referenceID = referenceID;
          //this.priceGroup = priceGroup;
          //this.page = page;
          //this.date = date;
          //this.clientName = clientName;
          //this.clientCode = clientCode;
          //this.tilCreationDate = tilCreationDate;
          //this.setBookingUnitName(bookingUnitName);
          //this.bccName = bccName;
          //this.pageName = pageName;
          //this.pgName = pgName;
          //this.order = order;
          //this.pageType = pageType;
      }
  
      public String getClientName() {
          return clientName;
      }
  
      public void setClientName(String clientName) {
          this.clientName = clientName;
      }
  
      public String getClientCode() {
          return clientCode;
      }
  
      public void setClientCode(String clientCode) {
          this.clientCode = clientCode;
      }
  
      public void setId(ObjectId id) {
          this.id = id;
      }
  
      public ObjectId getId() {
          return id;
      }
  
      public void setTilCreationDate(Long tilCreationDate) {
          this.tilCreationDate = tilCreationDate;
      }
  
      public Long getTilCreationDate() {
          return tilCreationDate;
      }
      public String getreferenceID() {
          return referenceID;
      }
  
      public void setreferenceID(String referenceID) {
          this.referenceID = referenceID;
      }
  
      public String getPriceGroup() {
          return priceGroup;
      }
  
      public void setPriceGroup(String priceGroup) {
          this.priceGroup = priceGroup;
      }
  
      public String getPage() {
          return page;
      }
  
      public void setPage(String page) {
          this.page = page;
      }
  
      public Long getDate() {
          return date;
      }
  
      public void setDate(Long date) {
          this.date = date;
      }
  
  
      public String getListEditions() {
          return listEditions;
      }
  
      public void setVertical(String listEditions) {
          this.listEditions = listEditions;
      }
  
      public String getListPackage() {
          return listPackage;
      }
  
      public void setListPackage(String listPackage) {
          this.listPackage = listPackage;
      }
  
      public Double getYield() {
          return yield;
      }
  
      public void setYield(Double yield) {
          this.yield = yield;
      }
  
      public Double getQty() {
          return qty;
      }
  
      public void setQty(Double qty) {
          this.qty = qty;
      }
  
      public Double getValue() {
          return value;
      }
  
      public void setValue(Double value) {
          this.value = value;
      }
  
      public void setBookingUnitName(String bookingUnitName) {
          this.bookingUnitName = bookingUnitName;
      }
  
      public String getBookingUnitName() {
          return bookingUnitName;
      }
  
      public String getBccName() {
          return bccName;
      }
  
      public void setBccName(String bccName) {
          this.bccName = bccName;
      }
  
      public String getPageName() {
          return pageName;
      }
  
      public void setPageName(String pageName) {
          this.pageName = pageName;
      }
  
      public String getPgName() {
          return pgName;
      }
  
      public void setPgName(String pgName) {
          this.pgName = pgName;
      }
  
      @Override
      public String toString() {
          String unit = "{ " +
                              //"ClientCode: "  + this.clientCode+
                              //",TILCreation Date: "  + new Date(this.tilCreationDate)+
                              //",ClientName: "+ this.clientName+
                              "listEditions: "  + this.listEditions+
                              ",listPackage: "+ this.listPackage+ 
                              //",BookingUnitName: "+ this.bookingUnitName+ 
                              //",Yield: "     + this.yield+
                              //",QTY: "  + this.qty+
                              //",Value: "  + this.value+
                              ",referenceID: "  + this.referenceID+
                              //",Price Group: "  + this.priceGroup+
                              //",BCCName: "  + this.bccName+
                              //",PageName: "  + this.pageName+
                              //",PriceGroupName: "  + this.pgName+
                              //",Page: "  + this.page+
                              //",PageType: "  + this.pageType+
                              //",Order: "  + this.order+
                              //",PublishDate: "  + new Date(this.date) +
  
                      " }";
          return unit;
      }
      public void setOrder(String order) {
          this.order = order;
      }
      public String getOrder() {
          return order;
      }
      public void setPageType(String pageType) {
          this.pageType = pageType;
      }
      public String getPageType() {
          return pageType;
      }
  }
  </code></pre>