Bridging with AP1030 and Controller
Hi
I have a test enviroment with 2 ap1030 and i want to make a 5ghz bridge link with these two aps. this should be possilbe. but im not able to get it worked. i also didnt found a good documenation for this configuration.
do i need to make both aps in BRIDGE mode?
in the debugging i always get: LWAPP Join-Request AUTH_STRING_PAYLOAD, invalid BRIDGE key hash AP 00:0b:85:71:cd:a0
when i connect the "BRIDGE" ap to the lan. i set a key under zero touch config, and also tried to RESET the ap. doesnt work
anybody can help?
regards
It's pretty simple, just not well documented.
1. First, write down the macs of each AP, and connect them so they are both assoicated to the controller.
2. Enable Zero Touch Config on your controller
3. Goto the Security Page, under AAA on the left side, click on MAC Filtering.
4. Add a Mac Filter for each of the AP's Macs (Which you already wrote down)
5. Goto the Wireless Page. Select Detail on one of the APs. Change it from Local Mode to Bridge AP
and hit APPLY. The AP should reboot.
6. Repeat this step with the Other AP.
7. Once both AP's have rebooted, and reassoiated, and you have confirmed they are both in Bridge AP mode, you can unpluge one of them. Just apply power, and it should setup the AP bridge.
8 IMPORTANT You cannot do this from WCS (I've never seen the option there)
From the AP details screen, select Ethernet Bridging (check the checkbox) on BOTH of the bridges.
You should be able to plug a client into the RJ45 of your remote bridge, and pass traffic now.
THIS Step is only nessacary if you entend to use the ethenet interface on the remote AP.
If you continue to have problems, you can try this: (Try the above first, since I don't think you created the MAC Filter, which YOU MUST do)
From controller CLI "config network allow-old-bridge-aps enable"
Similar Messages
-
Problem with jsp and controller
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ page import='com.uk.nhs.training.data.ActivityMatrix'%>
<SCRIPT language="JavaScript" type="text/javascript">
function bookActivity()
if (document.bookActivityController.activitySelect.selectedIndex == 0)
alert("Please Select Activity");
else if (document.bookActivityController.trainerId.selectedIndex == 0)
alert ( "Please Select Trainer");
else if(document.bookActivityController.fromDate.value=="")
alert("Please supply the Start Date of Activity")
else
validateForExistingCourses();
function validateForExistingCourses()
flag="wait";
var trainerId=document.getElementById("trainerId").value;
var fromDate=document.getElementById("fromDate").value;
var toDate=document.getElementById("toDate").value;
var activityId=document.getElementById("activitySelect").value;
url="ajaxList.htm?actionType=checkBookedCoursesActivities&trainerId="+trainerId+"&fromDate="+fromDate+"&toDate="+toDate+"&activitySelect="+activityId;
what = "checkForPreBookedCoursesActivities(req.responseXML)";
doCallback(null);
function checkForPreBookedCoursesActivities(theXmlResponse)
// alert("in here in checking prebookedCourses");
if(theXmlResponse != null)
var isActivityExisting = theXmlResponse.getElementsByTagName('existingActivity')[0].text;
var isCourseExisting = theXmlResponse.getElementsByTagName('existingbookedcourse')[0].text;
if(isActivityExisting=="Y")
alert("Activity You are trying to book for Trainer already exists");
return false;
else if(isCourseExisting=="Y")
if(confirm('Conflict Message. The dates choosen conflict with a current booking. Do you want to override'))
window.open("/training1.1/secure/prebookedEvents.htm","clientwindow",'StatusBar', 'toolbar=yes,resizable=yes,scrollbars=yes,width=500,height=400,left=0,top=0');
return false;
else
document.bookActivityController.action="/training1.1/secure/bookActivityTrainer.htm?actionType=submitForm";
document.bookActivityController.submit();
function goHomePage()
window.location="/training1.1/secure/welcome.htm";
function showHideAmPm(divId)
if(document.bookActivityController.halfday.checked==true)
showDiv(divId);
else
hideDiv(divId);
function showDiv(divId)
var item = document.getElementById(divId);
alert("show item"+item);
if (item)
item.className='unhidden';
function hideDiv(divId)
var item = document.getElementById(divId);
alert("unhide item"+item);
if (item)
item.className='hidden';
function getActivitiesPm()
if(document.bookActivityController.am.checked==true)
document.bookActivityController.pm.checked=false;
flag="wait";
url="ajaxList.htm?actionType=activities&keyword=PM";
what = "setActivities(req.responseXML)";
doCallback(null);
document.bookActivityController.activityTimeSelect.value="halfday";
document.bookActivityController.activityTimeSubType.value="pm";
// alert("subType"+document.bookActivityController.activityTimeSubType.value);
function getActivitiesAm()
if(document.bookActivityController.pm.checked==true)
document.bookActivityController.am.checked=false;
flag="wait";
url="ajaxList.htm?actionType=activities&keyword=AM";
what = "setActivities(req.responseXML)";
doCallback(null);
document.bookActivityController.activityTimeSelect.value="halfday";
document.bookActivityController.activityTimeSubType.value="pm";
function getSingleDayActivities()
if(document.bookActivityController.singleday.checked==true)
document.bookActivityController.moredays.checked=false;
document.bookActivityController.halfday.checked=false;
hideDiv('partofhalfday');
document.bookActivityController.activityTimeSelect.value="fullday";
flag="wait";
url="ajaxList.htm?actionType=activities&keyword=FullDay";
what = "setActivities(req.responseXML)";
doCallback(null);
else
hideDiv('activitySelect');
function getMoreDaysActivities()
alert();
if(document.bookActivityController.moredays.checked==true)
document.bookActivityController.singleday.checked=false;
document.bookActivityController.halfday.checked=false;
hideDiv('partofhalfday');
document.bookActivityController.activityTimeSelect.value="moredays";
flag="wait";
url="ajaxList.htm?actionType=activities&keyword=FullDay";
what = "setActivities(req.responseXML)";
doCallback(null);
else
hideDiv('activitySelect');
showDiv('dateTo');
function setActivities(theXmlResponse)
//start filling the Venues Select boxes now
if(theXmlResponse != null)
var coursesBox=document.getElementById("activitySelect");
coursesBox.options.length=0;
var activityElementsLength=theXmlResponse.getElementsByTagName('activity').length;
var activityElementsArray=theXmlResponse.getElementsByTagName('activity');
//alert("length"+activityElementsLength+activityElementsArray);
for(x = 0; x < activityElementsLength; x++)
//coursesBox.options[coursesBox.options.length] = new Option(coursesElementsArray[x].firstChild.text, coursesElementsArray[x].lastChild.text);
var optn = document.createElement("OPTION");
optn.text = activityElementsArray[x].firstChild.text;
optn.value = activityElementsArray[x].lastChild.text;
coursesBox.options.add(optn);
if (activityElementsLength>0)
showDiv('activityTD');
flag="release";
</script>
<div id="content"><!-- Top story -->
<div id="topstory" class="box">
<div id="topstory-img"></div>
<!-- /topstory-img -->
<div id="topstory-desc">
<div id="topstory-title"><strong>BOOK Activity</strong></div>
<!-- /topstory-title -->
<div id="topstory-desc-in"></div>
<!-- /topstory-desc-in --></div>
<!-- /topstory-desc --></div>
<!-- /topstory -->
<div id="bodycontent">
<% int errorCount=0; %>
<spring:bind path="bookactivityevent.*">
<c:forEach items="${status.errorMessages}" var="error">
<B><font color="red">Error: <c:out value="${error}"/></font><B/>
<% errorCount++; %>
</c:forEach>
</spring:bind>
<form method="post" name="bookActivityController" action="<c:url value="/secure/bookActivityTrainer.htm"/>">
<table align="right" width="50%" border=0>
<input type="hidden" name="activityTimeSelect"/>
<input type="hidden" name="activityTimeSubType"/>
<tr>
<td align="left">
<INPUT TYPE="checkbox" NAME="halfday" onclick="showHideAmPm('partofhalfday')">Half Day
<div align="left "id="partofhalfday" class="hidden">
<INPUT TYPE="RADIO" NAME="am" onClick="getActivitiesAm()" value="am">AM <INPUT TYPE="RADIO" NAME="pm" onClick="getActivitiesPm()">PM <BR>
</div>
</td>
</tr>
<tr><td><INPUT TYPE="checkbox" NAME="singleday" onClick="getSingleDayActivities()"> Single Day</td>
</tr>
<tr>
<td><INPUT TYPE="checkbox" NAME="moredays" onClick="getMoreDaysActivities()"> More Days</td>
</tr>
<tr>
<td align="left" id="activityTD">Activity :
<c:set var="activityMap" value=${requestScope.activityMap}/>
<c:choose>
<c:when test="${activityMap = null}"
<spring:bind path="bookactivityevent.userSuppliedActivity.activity.activityId">
<select name="activitySelect" id="activitySelect" size="1"
STYLE="width: 150px">
<option value="Choose Activity" default>Choose Activity</option>
</select>
</spring:bind>
</c:when>
<c:otherwise>
<spring:bind path="bookactivityevent.userSuppliedActivity.activity.activityId">
<select name="activitySelect" id="activitySelect"
size="1" STYLE="width: 150px">
<option value="" default>Choose Activity</option>
<c:forEach var="activity" items="${activityMap}" varStatus="a">
<c:choose>
<c:when
test="${(bookactivityevent !=null) && (bookactivityevent.userSuppliedActivity.activity.activityId == activity.activityId)}">
<option value="<c:out value="${activity.activityId}"/>" selected><c:out
value="${activity.activityId}" /></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${activity.activityId}"/>"><c:out
value="${activity.activity}"/>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</spring:bind>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td align="left">Trainer:
<spring:bind path="bookactivityevent.userSuppliedActivity.trainer.trainerId">
<select name="trainerId" id="trainerId"
size="1" STYLE="width: 150px">
<option value="" default>Choose Trainer</option>
<c:forEach var="trainer" items="${trainers}" varStatus="a">
<c:choose>
<c:when
test="${(bookactivityevent !=null) && (bookactivityevent.userSuppliedActivity.trainer.trainerId == trainer.trainerId)}">
<option value="<c:out value="${trainer.trainerId}"/>" selected>
<c:out value="${trainer.firstName}"/> <c:out
value="${trainer.surName}" /></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${trainer.trainerId}"/>"><c:out
value="${trainer.firstName}"/> <c:out
value="${trainer.surName}" /></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</spring:bind>
</td>
</tr>
<tr>
<td align="left" id="dateFrom">From Date
<spring:bind path="bookactivityevent.userSuppliedActivity.dateFrom">
<input type="text" name="dateFrom" value=""/>
</spring:bind>
<img
src="../design/cal.gif" width="16" height="16" border="0"
alt="Click Here to Pick up the date"></td>
</tr>
<tr>
<td align="left" id="dateTo" class="hidden">To Date
<spring:bind path="bookactivityevent.userSuppliedActivity.dateTo">
<input type="text" name="dateTo" value=""/>
</spring:bind>
<img
src="../design/cal.gif" width="16" height="16" border="0"
alt="Click Here to Pick up the date"></td>
</tr>
<tr>
<td align="left" colspan="2"><input type="submit" name="_target1" value="BookActivity"/></td>
<c:if test="${(bookactivityevent != null) && (not empty bookactivityevent.conflictBookings)}">
<td align="left" colspan="2"><input type="submit" name="_target2" value="OverRideBookings"/></td>
</c:if>
<td align="left" colspan="2"><input type="button" name="Cancel"
value="Cancel" onClick="goHomePage();" /></td>
</tr>
</table>
</form>
</div>
<hr class="noscreen"/>
<div class="content-padding"></div>
<script language="JavaScript">
var cal1 = new calendar1(document.bookActivityController.elements['dateFrom']);
cal1.year_scroll = true;
cal1.time_comp = false;
var cal2 = new calendar1(document.bookActivityController.elements['dateTo']);
cal2.year_scroll = true;
cal2.time_comp = false;
</script></div>
<!-- /content -->
package com.uk.nhs.training.controller;
import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.text.html.HTMLDocument;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindException;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractWizardFormController;
import org.springframework.web.servlet.view.RedirectView;
import com.uk.nhs.training.contractUtility.ContractHtmlReader;
import com.uk.nhs.training.data.Activity;
import com.uk.nhs.training.data.ActivityMatrix;
import com.uk.nhs.training.data.BookActivityEvent;
import com.uk.nhs.training.data.Booking;
import com.uk.nhs.training.data.BookingDetails;
import com.uk.nhs.training.data.Client;
import com.uk.nhs.training.data.Course;
import com.uk.nhs.training.data.Trainer;
import com.uk.nhs.training.data.Venue;
import com.uk.nhs.training.data.ActivityTimeConstants;
import com.uk.nhs.training.service.ActivityMatrixService;
import com.uk.nhs.training.service.ActivityService;
import com.uk.nhs.training.service.BookingDetailsService;
import com.uk.nhs.training.service.BookingService;
import com.uk.nhs.training.service.ClientService;
import com.uk.nhs.training.service.CourseService;
import com.uk.nhs.training.service.TrainersService;
import com.uk.nhs.training.service.VenueService;
public class BookActivityController extends AbstractWizardFormController {
protected final Log logger = LogFactory.getLog(getClass());
private BookingService bookingFacade;
private BookingDetailsService bookingDetailsFacade;
private CourseService courseFacade;
private VenueService venueFacade;
private ClientService clientFacade;
private ActivityMatrixService activityMatrixFacade;
private ActivityService activityFacade;
private TrainersService trainersFacade;
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
public BookActivityController() {
setCommandClass(BookActivityEvent.class);
setCommandName("bookactivityevent");
setBindOnNewForm(true);
protected Object formBackingObject(HttpServletRequest request)
throws Exception {
BookActivityEvent bookActivityEvent = new BookActivityEvent();
ActivityMatrix activityMatrix = new ActivityMatrix();
activityMatrix.setActivity(new Activity());
activityMatrix.setTrainer(new Trainer());
List<Booking> bookingList = new ArrayList<Booking>();
bookActivityEvent.setUserSuppliedActivity(activityMatrix);
bookActivityEvent.setConflictBookings(bookingList);
return bookActivityEvent;
public Map referenceData(HttpServletRequest request, Object command, Errors errors, int Page)
List trainers = trainersFacade.loadTrainers();
Map trainersActivitiesMap = new HashMap();
trainersActivitiesMap.put("trainers", trainers);
return trainersActivitiesMap;
protected ModelAndView processFinish(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors) {
try {
ActivityMatrix activity = (ActivityMatrix) command;
activityMatrixFacade.saveActivityMatrix(activity);
logger.info("Activity is successfully saved for the trainer");
} catch (Exception e) {
e.getClass();
e.printStackTrace();
return new ModelAndView("bookSuccess");
@Override
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
dateFormat.setLenient(true);
binder.registerCustomEditor(java.sql.Date.class, "dateFrom", new SqlDateEditor(true));
binder.registerCustomEditor(java.sql.Date.class, "dateTo", new SqlDateEditor(false));
binder.registerCustomEditor(java.sql.Date.class, null, new SqlDateEditor(true));
protected ModelAndView handleInvalidSubmit(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("bookInvalidSubmit");
@Override
protected ModelAndView processCancel(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
return new ModelAndView(new RedirectView("welcome.htm"));
@Override
protected void onBindAndValidate(HttpServletRequest request,
Object command, BindException errors, int page) throws Exception {
BookActivityEvent bookActivityEvent = (BookActivityEvent) command;
System.out.println(" PAGE : " + page);
try {
switch (page) {
case 0:
if (request.getParameter("_target1") != null) {
ActivityMatrix userActivityMatrix = bookActivityEvent.getUserSuppliedActivity();
buildActivityMatrix(request, bookActivityEvent);
validateActivityMatrix(bookActivityEvent, errors);
if (errors.getErrorCount() == 0)
Trainer trainer = (Trainer) trainersFacade.loadTrainersById(userActivityMatrix.getTrainer().getTrainerId());
bookActivityEvent.getUserSuppliedActivity().setTrainer(trainer);
Activity activity= (Activity) activityFacade.loadActivitiesById(userActivityMatrix.getActivity().getActivityId());
bookActivityEvent.getUserSuppliedActivity().setActivity(activity);
boolean activityExists = checkForExistingActivities(userActivityMatrix, errors);
if(!activityExists)
boolean bookingsExist = checkForBookedCourses(request, bookActivityEvent, errors);
if(bookingsExist)
// inject an error code so that it can be used in GUI
errors.rejectValue("dateFrom","invalid dates","Trainer has Bookings in conflict with the Supplied Activity Dates");
else
errors.rejectValue("dateFrom","Activity Dates supplied already exist");
break;
case 1:
if (request.getParameter("_target2") != null)
* Get the user supplied activitymatrix and try to get all the bookings which are in conflict for the trainer
List<Booking> conflictBookingsList = (List<Booking>)request.getSession().getAttribute("conflictBookingsList");
break;
default:
} catch (Exception e) {
System.err.println("Exception :" + e.getMessage());
super.onBindAndValidate(request, command, errors, page);
* @param request
* @param userActivity
* @param bookActivityEvent TODO
private ActivityMatrix buildActivityMatrix(HttpServletRequest request, BookActivityEvent bookActivityEvent) {
ActivityMatrix userActivity = bookActivityEvent.getUserSuppliedActivity();
userActivity.getTrainer().setTrainerId((String)(request.getParameter("trainerId")));
userActivity.getActivity().setActivityId((String)(request.getParameter("activitySelect")));
String activityTime = (String)request.getParameter("activityTimeSelect");
String activitySubType = (String)request.getParameter("activityTimeSubType");
if("fullday".equals(activityTime))
userActivity.getActivity().setTime(ActivityTimeConstants.FULLDAY.toString());
else if("moredays".equals(activityTime))
userActivity.getActivity().setTime(ActivityTimeConstants.MOREDAYS.toString());
else if("halfday".equals(activityTime)&& "am".equals(activitySubType))
userActivity.getActivity().setTime(ActivityTimeConstants.AM.toString());
else if("halfday".equals(activityTime)&& "pm".equals(activitySubType))
userActivity.getActivity().setTime(ActivityTimeConstants.PM.toString());
if(!("moredays".equals(activityTime)))
userActivity.setDateTo(bookActivityEvent.getDateFrom());
userActivity.setDateFrom(bookActivityEvent.getDateFrom());
bookActivityEvent.setUserSuppliedActivity(userActivity);
return userActivity;
* Create an empty Booking details for client and course...
* @param booking
private void setInitialBookingDetails(Booking booking, BindException errors) {
if (booking.getBookingType().equals("Client-Based")) {
if (booking.getClient() == null
|| booking.getClient().getClientId() == null) {
booking.setClient(new Client());
} else if (booking.getBookingType().equals("Staff")) {
booking.setClient(null);
if (booking.getBookingDetails() == null) {
List<BookingDetails> bkDetailsList = new ArrayList<BookingDetails>();
BookingDetails bkDetails = new BookingDetails();
bkDetails.setCourse(new Course());
bkDetailsList.add(bkDetails);
booking.setBookingDetails(bkDetailsList);
} else {
List bkDetList = booking.getBookingDetails();
if (bkDetList.size() < 1
|| (bkDetList.size() > 0 && !((bkDetList.get(0)) instanceof BookingDetails))) {
BookingDetails bkDetails = new BookingDetails();
bkDetails.setCourse(new Course());
bkDetList.add(0, bkDetails);
booking.setBookingDetails(bkDetList);
} else if (((BookingDetails) bkDetList.get(0)).getCourse() == null
|| ((BookingDetails) bkDetList.get(0)).getCourse()
.getCourseId() == null) {
((BookingDetails) bkDetList.get(0)).setCourse(new Course());
@Override
protected void validatePage(Object command, Errors errors, int page,
boolean finish) {
BookActivityEvent activityEvent = (BookActivityEvent) command;
if (finish) {
super.validatePage(command, errors, page);
* Validate client
* @param booking
* @param err
private boolean checkForExistingActivities(ActivityMatrix userSuppliedActivity, Errors err)
boolean exist = false;
List<ActivityMatrix> trainerActivityMatrixList = activityMatrixFacade.getActivityMatrixBetweenDateRange(userSuppliedActivity.getTrainer().getTrainerId(),
userSuppliedActivity.getDateFrom(), userSuppliedActivity.getDateTo());
if(ActivityTimeConstants.MOREDAYS.equals(userSuppliedActivity.getActivity().getTime()))
//checkForDates(trainerActivityMatrixList,);
else if(ActivityTimeConstants.FULLDAY.equals(userSuppliedActivity.getActivity().getTime()))
// checkForDates(trainerActivityMatrixList,);
else if(ActivityTimeConstants.AM.equals(userSuppliedActivity.getActivity().getTime()) ||
ActivityTimeConstants.PM.equals(userSuppliedActivity.getActivity().getTime()))
// checkForDates(trainerActivityMatrixList,);
return exist;
* Check for existing bookings for a trainer and sets them on event object
* @param request request.
* @param event event.
* @param err err.
* @return true- bookings exist else false.
private boolean checkForBookedCourses(HttpServletRequest request, BookActivityEvent event, Errors err)
List<Booking> conflictBookingsList = bookingFacade.loadBookingsByTrainerIdDateRange(event.getUserSuppliedActivity().getTrainer().getTrainerId(),
event.getUserSuppliedActivity().getDateFrom(),
event.getUserSuppliedActivity().getDateTo());
request.getSession().setAttribute("conflictBookingsList",conflictBookingsList);
if(conflictBookingsList!=null && conflictBookingsList.size()!=0)
event.setConflictBookings(conflictBookingsList);
return true;
else
return false;
* Validate client
* @param booking
* @param err
private void validateActivityMatrix(final BookActivityEvent activity, Errors err) {
// ValidationUtils.rejectIfEmptyOrWhitespace(err, "trainer.trainerId",
// "required.trainer.trainerId", "Valid trainer needs to be selected.");
//// ValidationUtils.rejectIfEmptyOrWhitespace(err, "activity.activityId",
//// "required.activity.activityId", "Valid activity needs to be selected.");
// if (err.getErrorCount() < 1)
// if (activity.getDateFrom() == null) {
// err.rejectValue("dateFrom", "required.dateFrom",
// "Valid Activity Start Date is required");
// try
// if (activity.getDateFrom() != null && activity.getDateTo() != null
// && (activity.getDateTo().before(activity.getDateFrom())))
// err.rejectValue("dateTo", "required.dateTo",
// "Activity End Date Should be after start date.");
// } catch (Exception ex) {
// err.rejectValue("dateFrom",
// "dateFrom",
// "Improper dates, please provide valid dates.");
* Validate Trainer
* @param booking
* @param e
private void validateTrainer(final Booking booking, Errors e) {
ValidationUtils.rejectIfEmptyOrWhitespace(e,
"bookingDetails[0].startDate",
"required.bookingDetails[0].startDate",
"Valid Booking Details startDate required.");
ValidationUtils.rejectIfEmptyOrWhitespace(e,
"bookingDetails[0].trainer.trainerId",
"required.bookingDetails[0].trainer.trainerId",
"Valid Booking Details Trainer required.");
if (e.getErrorCount() < 1)
for (BookingDetails bd : booking.getBookingDetails()) {
if (bd.getStartDate() == null) {
e.rejectValue("startDate", "required.bbb0",
"Valid Booking details Start Date is required");
try {
if (bd.getStartDate() != null && bd.getEndDate() != null
&& (bd.getEndDate().before(bd.getStartDate())))
e.rejectValue("endDate", "required.bbb0",
"End Date Should be after starting date.");
} catch (Exception ex) {
e.rejectValue("bookingDetails[0].startDate",
"before.bookingDetails[0].startDate",
"Improper dates, please provide valid dates.");
if (bd.getTrainer() != null) {
e.rejectValue("trianerId", "required.trianerId",
"Valid Trainer details required.");
public BookingService getBookingFacade() {
return bookingFacade;
public void setBookingFacade(BookingService bookingFacade) {
this.bookingFacade = bookingFacade;
public CourseService getCourseFacade() {
return courseFacade;
public void setCourseFacade(CourseService courseFacade) {
this.courseFacade = courseFacade;
public VenueService getVenueFacade() {
return venueFacade;
public void setVenueFacade(VenueService venueFacade) {
this.venueFacade = venueFacade;
public ClientService getClientFacade() {
return clientFacade;
public void setClientFacade(ClientService clientFacade) {
this.clientFacade = clientFacade;
public TrainersService getTrainersFacade() {
return trainersFacade;
public void setTrainersFacade(TrainersService trainersFacade) {
this.trainersFacade = trainersFacade;
* getter method for activityFacade.
* @return Returns the activityFacade.
public ActivityService getActivityFacade() {
return activityFacade;
* setter method for activityFacade.
* @param activityFacade The activityFacade to set.
public void setActivityFacade(ActivityService activityFacade) {
this.activityFacade = activityFacade;
* getter method for activityMatrixFacade.
* @return Returns the activityMatrixFacade.
public ActivityMatrixService getActivityMatrixFacade() {
return activityMatrixFacade;
* setter method for activityMatrixFacade.
* @param activityMatrixFacade The activityMatrixFacade to set.
public void setActivityMatrixFacade(ActivityMatrixService activityMatrixFacade) {
this.activityMatrixFacade = activityMatrixFacade;
* getter method for bookingDetailsFacade.
* @return Returns the bookingDetailsFacade.
public BookingDetailsService getBookingDetailsFacade() {
return bookingDetailsFacade;
* setter method for bookingDetailsFacade.
* @param bookingDetailsFacade The bookingDetailsFacade to set.
public void setBookingDetailsFacade(BookingDetailsService bookingDetailsFacade) {
this.bookingDetailsFacade = bookingDetailsFacade;
class SqlDateEditor extends PropertyEditorSupport {
private boolean isRequired = false;
SqlDateEditor(boolean isRequired) {
this.isRequired = isRequired;
public void setAsText(String text) throws IllegalArgumentException {
java.util.Date d = null;
if (!this.isRequired && !StringUtils.hasText(text)) {
setValue(null);
else
try {
d = dateFormat.parse(text);
setValue(new java.sql.Date(d.getTime()));
} catch (ParseException ex) {
throw new IllegalArgumentException("Could not parse date: " + ex.getMessage());
public String getAsText() {
Date value = (java.sql.Date)getValue();
if (value != null) {
java.util.Date d = new java.util.Date(value.getTime());
return dateFormat.foThis topic is hopeless. Too much unnecessary code. Unformatted code. No question. No requirements. No step-by-step explanation how to reproduce problem. No expectations. No unexpectations/errors.
Please read this how to get better help. -
Cisco AP 700w as a Work Group Bridge with a WLAN Controller
I am trying to setup an AP 700w as a Work Group Bridge as it would be interesting to have this running, because it has the built-in 4 port switch.
I have WiSM based WLCs running the version 7.0.240.0. I converted a 700w to an autonomous AP and on the AP I installed the IOS Version 15.3(3)JA1.
When I use an autonmous based AP to connect the 700w as a WGB everything works fine. I can connect clients through the 4 port switch.
If I try to use a Controller based WLAN environment it does not work. The config is simple:
ap#sh run
Building configuration...
Current configuration : 1805 bytes
! Last configuration change at 18:37:11 UTC Thu Mar 5 2015
version 15.3
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
hostname ap
logging rate-limit console 9
enable secret 5 $1$b5Da$QTI6Geq7ARZud34ZqA45.0
no aaa new-model
led display off
no ip source-route
no ip cef
dot11 syslog
dot11 ssid LAGERWPA
authentication open
authentication key-management wpa
wpa-psk ascii 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
username CISCO password 7 14341B180F0B
bridge irb
interface Dot11Radio0
no ip address
encryption mode ciphers aes-ccm tkip
ssid LAGERWPA
antenna gain 0
packet retries 64 drop-packet
station-role workgroup-bridge
bridge-group 1
bridge-group 1 spanning-disabled
interface Dot11Radio1
no ip address
shutdown
antenna gain 0
peakdetect
no dfs band block
packet retries 64 drop-packet
channel dfs
station-role root
bridge-group 1
bridge-group 1 subscriber-loop-control
bridge-group 1 spanning-disabled
bridge-group 1 block-unknown-source
no bridge-group 1 source-learning
no bridge-group 1 unicast-flooding
interface GigabitEthernet0
no ip address
duplex auto
speed auto
bridge-group 1
bridge-group 1 spanning-disabled
interface BVI1
mac-address 18e7.2801.9610
ip address dhcp client-id GigabitEthernet0
ipv6 address dhcp
ipv6 address autoconfig
ipv6 enable
ip forward-protocol nd
ip http server
no ip http secure-server
ip http help-path http://www.cisco.com/warp/public/779/smbiz/prodconfig/help/eag
lan-port port-id 1
no shutdown
lan-port port-id 2
shutdown
lan-port port-id 3
shutdown
lan-port port-id 4
shutdown
bridge 1 route ip
line con 0
line vty 0 4
login local
transport input all
end
The association is OK, it is seen as a WGB, I can reach resources on our network from the AP, ping works, I can use a telnet from client to access the AP 700w etc.:20... Here is an old post for reference.
https://supportforums.cisco.com/thread/2119996
Sent from Cisco Technical Support iPhone App -
WDS Bridging with EPC2425 and EPC3925
I have a redundant Cisco EPC2425 that I want to use as a wireless bridge to connect to my current home router (an EPC3925).
I have got the channels/band/keys matching yet the 2425 is failing to connect to my home router. I have set the 2425 in bridge mode and currently can only set the wireless properties.
I have both ends of the supposed bridge referencing the other's MAC.
When I try to enter advanced settings on the 2425 I get a notice that the function has not been enabled.
What can I try to get these two boxes talking to each other?
Thank you.Sam:
I only can help by providing the user guide for your device:
http://www.comhem.se/blob/view/-/14442/data/4530/-/manual_cisco.pdf.pdf
I can only see that you enable bridging and provide the other mac address/addresses your bridge should connect to. Nothing else.
Actually this section in the forum is not the one for your device.
You better put your question here: https://supportforums.cisco.com/community/netpro/small-business/wireless
Good luck
Amjad -
1300 bridge with native and management vlan in different vlans
Hello,
We are going to set up a wireless bridge between two 1300 accesspoints. In our network the native vlan and the management vlan are different vlan's. Will we be able to manage the ap and switch at the "remote" site? Do we have to set up two ssid's, one for native and one for management?
regards,
RutgerToo answer my own question:
I don't think it is possible. Things work fine by making our management vlan the native vlan on switches and ap's involved. Management IP address on the BVI1 interface and everything works!
Rutger -
Problem with NEO2 and sata controller card
1.Product Type: MSI K8N Neo2 Platinum (MS-7025)
and the controller card is a InnoVision DM-8301 and the hard drive is a Seagate ST3320620AS
2.BIOS version: The newest one, 1C0 or something.
3.External VGA Type: Geforce 6800 GT
4.CPU Type: AMD 64 3500+
5.Memory Type: G Skill ZX 2048mb.
6.Power Supply Type:
7.Operating System: Xp Pro
8.Problem Description:
Hello. I have a strange problem with my controllercard. I wrote this text to InnoVision suport and they send me files and bios updates for a whole week and it was still the same problem. And then i tried the card in an older computer and everything worked fine.
I wrote
"Hello. I got some problems with my new controller card. I can find my new harddrive ,that's conected to the controller card, when iam inside windows and it's seems to be no problem. I can look on every seting on it and everywhere i look i can read "No problem". I Also did some test with the seatools programe and everything was fine. But when i schould copy files to it the coumputer start lagging after a few seconds and i cant do anything. After a while i can move the mouse around but the it laggs again. My computer is overclocked at the time but i have tried to use the harddrive when it's not clocked also. Also when im goin in to teh controlpanel and starts the setings for Sillicon Images sata controll and have music on my computer, the music laggs for a very very short moment. Something must be wrong and i can not find it."
It's still the same problem in my computer. The older computer had a MSI moderboard with a VIA chip and i have a nForce 3. InnoVison said i should talk to you about this problem. I have 3 harddrives but i use this controllercard because i want to have my computer overclocked and then i can't use 2 of the sata ports as i think you know.
I would be very thankful if you could help me with this problem.
//MartinI've used a noname SATA pci card (non raid) with SIL3112 on my neo2 without problems with 1C bios.
Think you may try with a disk lower than 48bitLBA need (137GB barrier), eg a 120GB disk
Quote:
have the InnoVision EIO DM-8301 and had alot of problems using it with WD 160MB SATA drive.
I am using Intel 865 based MB with 2 original SATA channels. The original SATA channels are bootable.
I could not used the EIO card with 160G HDD. The whole setup is working only after I connected oine of my 120G Segate SATA HDD to the EIO Sata card.
I think this card do not properly support HDD above 120G.
Please respond to: [email protected]
http://www.devhardware.com/forums/storage-devices-80/sata-as-boot-20080-2.html
Btw: you have xp sp2 ?
48bitLBA is not enabled in the first version.
http://www.48bitlba.com/winxp.htm
Edit:
Here's another with complete different setup and same problems
http://forum.tweakxp.com/forum/Topic212148-4-1.aspx
I doubt it has anything to do with your motherboard and/or bios.
Btw: I looked at innovision and their drivers in download area are very old.
Get the latest SIL3112 drivers for XP here:
http://www.siliconimage.com/support/supportsearchresults.aspx?pid=63&cid=3&ctid=2&osid=4&
And remember 3112 is sata150 only , so it's not sure it will work with your drive at all .
Anyway it should be set to fixed sata1.5G with jumper - not certain the controller can autonegotiate
without trouble. You cannot have command queing enabled either , disk support only NCQ and controller TCQ
so having command queing set ON will cause major conflicts in data transfers. -
Dear All,
We are having an infrastructure setup of around 500 client computers managed through group policy.
Recently the domain controllers have been migrated from Windows Server 2003 to Server 2008 R2.
Since this account requires extremely strict environment, we need to figure the solution for restricting the users from access anything locally.
It would be great if you can assist me with the following query.
How to restrict users logged on Windows 7 clients from accessing Windows Explorer and browsing other systems in the network through Group Policy with a domain controller running on Windows Server 2008 r2 ?
Can we disable Network Tab on the left hand pane ?
explorer.exe is blocked already, but users are able to enter the Windows Explorer by clicking on the name which is visible on the Start Menu.> * explorer.exe is blocked already, but users are able to enter the
> Windows Explorer by clicking on the name which is visible on the
> Start Menu.
You cannot block explorer.exe when you do not replace the shell - the
desktop you see effectively IS explorer.exe...
Your requirement sounds like you need a custom shell:
http://gpsearch.azurewebsites.net/#2812
Martin
Mal ein
GUTES Buch über GPOs lesen?
NO THEY ARE NOT EVIL, if you know what you are doing:
Good or bad GPOs?
And if IT bothers me - coke bottle design refreshment :)) -
Developing: Endless loop in Adobe Bridge with and Adobe Drive CMIS Connector
Hi
Currently I’m implementing a CMIS-Server for the dam system of my company, using the apache chemistry framework. One of the main requirements is that adobe drive works with it.
At the moment I implemented only the navigation services (getChildren, getObject, …) and the repository services and test them against adobe drive. It’s already possible to navigate through folders and read assets with ad4 and the finder. So 3 days ago I installed adobe bridge (CS6) and test my server again.
My test environment is very easy.
root(1 object)->test1(0 objects; empty)
First I’m opening my repository with adobe drive and then I switch to bridge and connect it. Bridge shows me the folder test1 with no errors. So I double-click it and now bridge is in an endless loop. The notification switch between ‘Keine anzuzeigenden Elemente’(No elements to show) and ‘Einen Moment bitte, die Suche läuft …’(Searching, please wait …). This only happens in bridge. When I open the folder with the finder it just works, without the loop.
So I logged all requests, which were send by adobe drive, and get this list.
Connecting with adobe drive
getRepositoryInfos
getTypeChildren (null) -> all basetypes
getTypeDecendants (cmis:document)
getTypeChildren (null) -> all basetypes (Why two times?)
getTypeDecendants (cmis:document) (Why two times?)
getRepositoryInfos (Why two times?)
getObjectByPath (/.hidden)
getObjectByPath (/.hidden)
getObjectByPath (/.hidden) (Why so often?)
getObjectByPath (/DCIM)
getObjectByPath (/mach_kernel)
getObjectByPath (/.Spotlight-V100)
getObjectByPath (/.metadata_never_index)
getObjectByPath (/.metadata_never_index_unless_rootfs)
getObjectByPath (/.metadata_never_index)
getObjectByPath (/mach_kernel)
getObjectByPath (/.metadata_never_index_unless_rootfs)
getChildren (cmis:folder,0) (rootfolder) returning only one element (test1)
getObjectParents(cmis:folder,127) (test1) returning the rootfolder
getObjectByPath (/.hidden)
getObjectByPath (/mach_kernel) …
Open the Cmis repository in bridge and doubleclick the repository
getChildren (cmis:folder,0) (rootfolder) returning only one element (test1)
getObjectParents(cmis:folder,127) (test1) returning the rootfolder
Then I double click the test1 folder
getObject(cmis:folder,127)(test1)
getChildren(cmis:folder,127) -> empty list
… (endless loop)
I already checked getObject and getChildren against a reference implementation (FileShare Repository of apache Chemistry) and it returns exactly the same structure. Only the name and the timestamps are different. So my second though was to check the repository capabilities and as well they are both equal. Now I’m a little bit desperate because I spend already 3 days in try and error bugfixing but nothing worked. So here are my questions.
Is there a logfile for bridge because I thing this refreshing happens after an exception. I already checked the adobe drive log and it contains only asset not found errors for (e.g mach_kernel …).
In which circumstances does bridge reloads a folder?
Debugging of adobe drive: I already read http://forums.adobe.com/message/3928595 but it doesn’t work in AD4 any more, I only get info/error/fatal messages.(I changed the log4j config files in AD4ServiceManager.) Does something changed or did I forget something?
Why does AD4 make 2 or more times the exact same request? (Look table above).
I hope my English is good enough to understand.
ThanksAfter two months I'm a little bit smarter so I can answer some of my question by my own.
No there is no logfile for bridge, but I was able to debug the scriptcode from the ad plugin, which is installed in bridge.
If an error occures in the plugin
I was able to decompile the cmis connector. That helps a lot when ad logs with weird exceptions.
Because AD maps the actions of the filebrowser(finder,explorer) to cmis and this one does sometimes the exact action two or more times.
Unfortunately is wasn't able to fix my main problem, but I found a workaround to use cmis in bridge. I deactivated the ad plugin in bridge and after that action, bride display the cmis volume as normal volume. Sadly some actions like to manage relationships etc. are with this workaround not usable but for me this is alright. -
Does RM29.90 per month photography package with photoshop and lightrooms come with Adobe bridge app as well?
Does RM29.90 per month photography package with photoshop and lightrooms come with Adobe bridge app as well?
-
Hi everyone, I been noticing my MacBook pro getting very slow in games like diablo 3 and Starcraft. This MacBook pro was bought a year ago. It is running i7 sandy bridge with a 128 Ssd. I did install optibay with a monetux xt hard drive in it.
It could run ultra setting on Starcraft no problem and is very smooth when I first got it. Lately I got diablo 3, and it gets very slow. I had to change all the graphics setting to low. It is not slow in the beginning, but it gets very slow after a while. It is like slow motion!!! Even when is low, it is still very laggy in game. I tried to repair the disk and clean up the laptop with onyx and still doing the same thing. I even try to reboot when is slow, but same thing after I reboot. I guess the MBP still hot.
Also I am running in lion!If it's a 13" MBP you don't have the more powerful dedicated graphics and there is nothing you can do but be mad at Apple for deceiving you that the 13" MacBook Pro was capable of extreme graphics.
Only the 15" and 17" have the more powerful dedicated graphics in addition to the CPU graphics.
Mac video card performance -
Working with Lightroom and Bridge
I have been using Lightroom for my photos, but was thinking of doing the following:
- Use Bridge to import files, and sort and tag them
- This has the benefit of allowing me to categorize movies, etc.
- Then open and use Lightroom for editing, etc.
Q1: LR is non-destructive. If I add a tag to an image in Bridge, does that write it to the file? Is it non-destructive.
Q2: If I import files into Bridge, do I open LR and import them in there too, or can I simply share the photos between the 2 programs?
Q3: Does LR read the keyword tags from Bridge?
Thoughts?
Thanks...
JohnI use Bridge exclusively for culling, editing, keywording. It is faster at those tasks, since it does not require importing everything into a database in order to edit them and then export them. I also already have a DAM that I presently prefer to LR, and likewise for slide shows and printing. I do maintain a 20,000 image test catalog in LR so that I can thoroughly test each of its trial versions, so I am very familiar with it from the first Beta testing to the present.
As long as you write your metadata to sidecars--or directly to tif and jpeg files, or DNG-- both Bridge and LR can see the changes made in either. However, if after you have imported files into the LR Library--and you must do that in order to use any of the features of LR on images--and subsequently delete them, then you must synchronize the folder they are in(lightroom menu item)to clear those image references from Lightrooom's Library. Same goes for adding files to a folder from outside of LR. There are a few things you must remember to do. It is not an entirely automatic process.
If you do a lot of work in PS on your images, you will likely find that working in Bridge with its very fast connection to PS will be faster. If you also do a lot of video--or mixed video,graphics, and image work, you are also likely to find Bridge faster and more workflow effective. LR is strictly a Photographic image management and editing application, from which you can do basic printing, very basic slideshows, and web work.
On the other hand, if you do little editing beyond what ACR provides (same features as LR) and need a DAM that manages only photographic images, and you find the LR Print, web and slideshow features satsifactory, then LR will overall be the more effective workflow.
The only way to determine which is right for you is to give your workflow a thorough test with LR and compare that to Bridge. LR 2.3 appears to be free of significant bugs, is fast and smooth, so this would is a good time for comparison. Bridge CS4/ACR 5.3 have been significantly upgraded as well, as you know. Workflows differ, sometimes significantly, as do machine configurations, so thorough individual testing is a must. Use the tools that will do the best job for your requirements. -
Creating a bridge with airport extreme (base) and airport express
i am having trouble creating a bridge with airport extreme (base) and airport express. i got the airport express to connect to my network. Airtunes sees it fine. i have an iMac (running Tiger) connected to the airport express via ethernet which i was hoping to get internet on (the iMac doesn't not have built in wireless and i had a spare airport express). now the airport express is no longer visible to the airport setup assistant on that iMac. but, like i mentioned, Airtunes is working fine, and the light is green.
i'm new to the wireless stuff. i am sure i just missed a step. how do i get the iMac to connect to the internet via my airport express bridging to my airport extreme wireless network?
your help is appreciated.You can do this with the equipment you have. Configure the AirPort Extreme base station (AEBS) to act as a WDS main base station and configure the AirPort Express (AX) to act as a WDS remote base station. That will allow you to use the Ethernet port on the AX.
Unfortunately WDS also causes the available wireless bandwidth to be cut in half. -
I need a step motor and controller compatible with LabView Can you recommend any
I need a step motor compatible with LabView and I thought i would check with you before i moved forward in my experiment
Dear chapbs,
I've attached a sample cart below to show you the components for a possible setup of your system. Keep in mind that whatever stepper drive you purchased would power your motor. If you go ahead with the purchase of a controller & drive, I would highly recommend contacting NI to insure that you purchased the correct accessory components and cables to connect & power the components. I hope the sample cart is helpful. I created it by browsing ni.com, adding items to my cart, and then saving the cart to an excel file. Please post back if you have additional questions.
Best Regards,
~NH
Attachments:
SampleCart.pdf 145 KB -
Bridge network to capture connections from VM with Arch and VirtualBox
Hello everyone,
what I am trying to do is capturing the connections from a VM for malware analysis. It turned out to be a little harder then I thought because I'm absolutely new to arch.
So what I thought of: Just have a normal host adapter and sniff. But it turned out that the VM does not have a dedicated adapter.
So the obvious next step would be to create one. I did that via the Host-Only-Adapter menu.
The problem is, that this is not connected to the internet as it is for the guest only. So what I thought to do was bridging it to my wls1-interface wich is connected to a WiFi.
My normal way would be:
brctl addbr capture
brctl show
brctl addif capture wls1
brctl addif capture vboxnet0
But that does not work with wls1 (it is refused to be linked to that bridge though enp0s25 works well).
The second thing I thought of was using netctl to build a bridge. This is what I put in /etc/netctl/bridge
Description="vmbridge"
Interface=br0
Connection=bridge
BindsToInterfaces=(wls1 vboxnet0)
IP=dhcp
## Ignore (R)STP and immediately activate the bridge
#SkipForwardingDelay=yes
But the command "sudo netctl start bridge" is just crashing my internet connection.
So how could I do this in the possibly best and most stable way?
Thanks for your helpAs you have found out, you cannot create a (Ethernet) bridge with a wireless interface. That is not going to work, whether you use brctl directly, or netctl.
If you would like to setup everything quickly and do not mind capturing everything (including host traffic), then just run dumpcap/tcpdump on the wireless interface.
If you are not stuck to VBox, try QEMU. Example command:
qemu-system-x86_64 -enable-kvm -m 2G -hda disk.qcow2 -net dump,file=dump.pcap -net user -net nic,model=e1000
-enable-kvm: enable KVM virtualization acceleration (requires Intel VT-x or the AMD equivalent). Remove if your machine does not support it.
-m 2G: assign 2GB RAM
-hda disk.qcow2: disk image created with qemu-img create -f qcow2 disk.qcow2 16G (16 GB disk image)
As you need to tap on the network, let QEMU create a hub network with three devices:
-net dump,file=...: hub network with
-net user: the host connection (you could also use tap, bridge, etc. if needed)
-net nic,model=...: the guest network connection
See the manual page qemu and the wiki for further details. -
Current 1TB computer dying. Installing new 3TB drive next Thursday. Can I just go directly to my account and install Creative Cloud with Proshow Producer and Bridge with a hastle?
When I look at the forum index Welcome | Adobe Community I do not find a program called proshow
Cloud Getting Started https://helpx.adobe.com/creative-cloud/topics/getting-started.html
or
http://forums.adobe.com/community/download_install_setup/creative_cloud_faq
Maybe you are looking for
-
Customer master_system internal no assignment to the customer
dear friends, for the creation of customer master system system automatically assign an internal no for each and every time in a sequence i.e., for example 1,2,3.....like wise. but after processing the system for some time system not assigning the im
-
Can I install presets on the Lightroom trial version?
Can I install and use presets on the Lightroom trial version?
-
I need to reinstall Dictionary and Calculator - Lion
I accidentally deleted Dictionary and Calculator with a third party app, and I'd like to get them back. After trying a few things, I decided to just reinstall Lion, but the OSX recovery mode -- restart with command-r, or with command+option+r doesn't
-
Synchronous message interface processes as Asynchronous
I have a message interface define as Outbound - Synchronous. But when it processes it shows it being an Asynchronous message. My response message mapping never executes. Thanks, Jim
-
Running programs won't stay minimized
Hi, I have a MacBook Pro (15-inch, Mid 2009) (2.66 GHz Intel Core 2 Duo, 4 GB 1067 MHz DDR3) that I just upgraded to Yosemite. Since upgrading, whenever I minimize apps back into the Dock, after a few seconds my desktop background will flash to black