Archiwa tagu: batch

Starting of Tomcat failed

Some day I had problem with deploying project from Netbeans to Tomcat (you may look to similar discussion on StackOverflow: Starting of Tomcat failed from Netbeans 7.3). Unfortunatelly, any of suggestion didn’t help, so I wrote my own deployer in Windows batch.

Some code:


ECHO AutoDeploy to Tomcat

SET tomcat_path=C:\TOMCAT
SET build_path=D:\SVN\SMOK_ELTE\JAVA\amfgw\build\web\WEB-INF\classes

::Stop Tomcat
echo Stop Tomcat, press any key to continue...
pause

netstat -a -n | findstr :8080 > NUL
if %errorlevel%==0 ( goto :stoptomcat ) else ( goto :next )
:stoptomcat
echo Closing Tomcat.
call %tomcat_path%\bin\shutdown.bat
goto :next
:next

::Copy compiled classes from Netbeans to Tomcat
XCOPY %build_path% "%tomcat_path%\webapps\ROOT\WEB-INF\classes" /E /C /R /I /K /Y

::Run Tomcat
CALL %tomcat_path%\bin\catalina.bat jpda start

But I wanted more – let Netbeans run this script after building my application.

Edit build.xml file, located in project directory, by putting these lines:
<target name="-post-compile">
<exec dir="." executable="cmd">
<arg line="/c D:\scriptLocation\deployOnTomcat.bat"/>
</exec>
</target>

Sqlite i skrypty batch

Dostęp do SQLite jest możliwy nie tylko z poziomu aplikacji. Dzięki kilku sztuczkom, można w łatwy sposób wykonywać operacje na tej świetnej bazie danych z poziomu zwykłych skryptów batch w Windowsie. Więcej na ten temat można przeczytać w poniższym wpisie:
http://bigcode.wordpress.com/2010/12/12/accessing-sqlite-from-a-dos-batch-file/

Na tej bazie stworzyłam sobie bardzo prostą aplikację logującą w bazie danych mój czas pracy. Aplikacja (w zasadzie to zestaw skryptów) jest wykonana głównie w celach poglądowych, aczkolwiek gdyby dopracować ją, mogłaby stanowić „niskobudżetowy” licznik czasu pracy.

Przygotowałam sobie następujący schemat danych:

DROP TABLE IF EXISTS workEventsDict;
DROP TABLE IF EXISTS workTime;
DROP TABLE IF EXISTS daySummary;
DROP INDEX IF EXISTS eventDescrIndex;

CREATE TABLE workEventsDict (
  id INTEGER PRIMARY KEY,
  symbol TEXT,-- short symbol: START itp.
  eventDescr TEXT
);

CREATE INDEX eventDescrIndex ON workEventsDict (eventDescr);

CREATE TABLE workTime (
  id INTEGER PRIMARY KEY,
  eventDate DATE,
  eventTime TIME,
  eventDescr REFERENCES workEvents(eventDescr)
    ON DELETE NO ACTION ON UPDATE NO ACTION
);

CREATE TABLE daySummary (
  id INTEGER PRIMARY KEY,
  day DATE,
  workTimeSummary TIME,
  overTime TIME,
  note TEXT-- holiday or other notes
);

INSERT INTO workEventsDict (id, symbol, eventDescr)
  VALUES (1, "START", "system started");
INSERT INTO workEventsDict (id, symbol, eventDescr)
  VALUES (2, "STOP", "system stopped");
INSERT INTO workEventsDict (id, symbol, eventDescr)
  VALUES (3, "LOCK", "profile locked");
INSERT INTO workEventsDict (id, symbol, eventDescr)
  VALUES (4, "UNLOCK", "profile unlocked");

W dalszej części wpisu prezentuję dalsze kody źródłowe.
Czytaj dalej