SMALL

 

 

 Tomcat 의 log 관련설정법입니다.

 

많은 개발자들이 개발환경으로 Tomcat 을 많이 사용하고 있습니다. 그리고 log 처리는 log4j를 사용합니다.

그러나 JDK에서 기본으로 제공하는 Logging 클래스도 꽤 쓸만한 기능을 제공하고 있습니다.


java.util.logging 추상 클래스가 바로 그것인데요, 이 클래스를 상속받아 구현한 클래스를 줄여서 JULI 라고 부릅니다. 

 

운영시에야 효율을 위해 최소한의 로그를 남기는것이 좋겠지만, 반대로 개발시에는 최대한의 많은 로그를 남기는것이 디버깅에 효과적입니다.

 

1. logging.properties의 위치

 a) 기본적인 Global 설정은 tomcat 디렉토리의 conf 입니다.

  - 이곳에 파일을 두고 설정하면 해당 컨테이너에 등록되는 모든 Application설정을 한방에 할수 있습니다.

 b) Application 별로 설정하고 싶다면, /WEB-INF/classes/ 밑에 logging.properties 를 두면 됩니다.

 

2. 설정방법

- 기본적으로 제공하는 핸들러는 java.util.logging.FileHandler 와 java.util.logging.ConsoleHandler 가 있습니다.

- java.util.logging.ConsoleHandler 는 기본출력 (catalina.out)으로 출력하는 핸들러이고,

- java.util.logging.FileHandler 는 날짜별로 롤링되는 특정파일에 출력하는 핸들러입니다.

- level 은 다음과 같이 ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE를 지원하며

- 오늘쪽으로 갈수록 로그량이 적습니다.

 

3. 설정예제

- org.apache.tomcat.util.net.TcpWorkerThread 클래스에 대해서 로그를 추가하고 싶을때

ex)
org.apache.tomcat.util.net.TcpWorkerThread.level = ALL
org.apache.tomcat.util.net.TcpWorkerThread.handler = java.util.logging.ConsoleHandler

 

- org.apache.tomcat.util.net 하위 클래스에 대해서 로그를 추가하고 싶을때

ex)
org.apache.tomcat.util.net.level = ALL
org.apache.tomcat.util.net.handler = java.util.logging.ConsoleHandler

 

이런식으로 로깅하고 싶은 클래스 또는 패키지를 지정해서 .level = XXX , .handler = java.util.logging.ConsoleHandler 를 달아주기만 하면 됩니다.

 

참 쉽죠~?


출처 - http://cafe.naver.com/hermeneus.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=98&

 

===================================================================================

 

 

tomcat 로그 저장 위치 변경 하기

 

tomcat logs 디렉토리(${catalina.base}/logs)에 저장되는 로그는 아래와 같은 곳에서 설정이 가능합니다.

 

- catalina.out 

  ${catalina.base}/bin/catalina.sh

 

- host-manager, localhost, manager

  ${catalina.base}/conf/logging.properties

 

- localhost_access_log

  ${catalina.base}/conf/server.xml

 

 

로그 저장 위치를 원하는 곳으로 변경 하는 방법은 두가지로 생각해 볼 수 있습니다.

 

첫번째는 logging.properies, catalina.sh, server.xml 등에서 디렉토리를 변경하는 방법이고

두번째는 ${catalina.base}/logs 디렉토리를 원하는 디렉토리로 soft link 시키는 방법입니다.

 

 

1. 각 설정에서 logging 디렉토리 변경

# vi /usr/local/tomcat/conf/logging.properties

 

변경 전

 

1catalina.org.apache.juli.FileHandler.level = FINE

1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

1catalina.org.apache.juli.FileHandler.prefix = catalina.


변경 후

 

1catalina.org.apache.juli.FileHandler.level = FINE

1catalina.org.apache.juli.FileHandler.directory = /var/log/tomcat

1catalina.org.apache.juli.FileHandler.prefix = catalina.

 

 

# vi /user/local/tomcat/bin/catalina.sh

 

변경 전

 

if [ -z "$CATALINA_OUT" ] ; then

  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

fi

 

변경 후

if [ -z "$CATALINA_OUT" ] ; then

  CATALINA_OUT=/var/log/tomcat/catalina.out

fi

 

 

 

# vi /user/local/tomcat/conf/server.xml

 

변경 전

 

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

 

 

변경 후

 

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat" prefix="localhost_access_log." suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

 

 

 

2. ${catalina.base}/logs 디렉토리를 원하는 디렉토리로 soft link 

# ln -s /var/log/tomcat /usr/local/tomcat/logs

LIST

'Linux' 카테고리의 다른 글

ubuntu Postgresql password변경  (0) 2015.03.10
ubuntu JDK install  (0) 2015.03.05
Ubuntu Tomcat install  (0) 2015.02.12
Linux 방화벽 포트열기  (0) 2015.02.12
리눅스 vi 명령어모음  (0) 2015.02.12
블로그 이미지

SeoHW

,

Ubuntu Tomcat install

Linux 2015. 2. 12. 14:41
SMALL

How To Install Apache Tomcat 7 on Ubuntu 14.04 via Apt-Get

Author: Mitchell Anicas Published: Apr 18, 2014 Updated: May 30, 2014

About Apache Tomcat

Apache Tomcat is an application server that is used to serve Java applications to the web. Tomcat is an open source implementation of the Java Servlet and JavaServer Pages technologies, released by the Apache Software Foundation.

This tutorial covers the basic installation and some configuration of Tomcat 7.0.x, the latest stable version at the time of writing, on your Ubuntu 14.04 VPS.

There are two basic ways to install Tomcat on Ubuntu:

  • Install through apt-get. This is the simplest method.

  • Download the binary distribution from the Apache Tomcat site. This guide does not cover this method; refer to Apache Tomcat Documentation for instructions.

For this tutorial, we will use the simplest method: apt-get. Please note that this will install the latest release of Tomcat that is in the official Ubuntu repositories, which may or may not be the latest release of Tomcat. If you want to guarantee that you are installing the latest version of Tomcat, you can always download the latest binary distribtion.

Step One — Prerequisites

Before you begin with this guide, you should have a separate, non-root user account set up on your server. You can learn how to do this by completing steps 1-4 in the initial server setup for Ubuntu 14.04. We will be using the demo user created here for the rest of this tutorial.

Step Two - Install Tomcat

The first thing you will want to do is update your apt-get package lists:

sudo apt-get update

Now you are ready to install Tomcat. Run the following command to start the installation:

sudo apt-get install tomcat7

Answer yes at the prompt to install tomcat. This will install Tomcat and its dependencies, such as Java, and it will also create the tomcat7 user. It also starts Tomcat with its default settings.

Tomcat is not completely set up yet, but you can access the default splash page by going to your domain or IP address followed by :8080 in a web browser:

http://your_ip_address:8080

You will see a splash page that says "It works!", in addition to other information. Now we will go deeper into the installation of Tomcat.

Step Three - Installing Additional Packages

Note: This section is not necessary if you are already familiar with Tomcat and you do not need to use the web management interface, documentation, or examples. If you are just getting into Tomcat for the first time, please continue.

With the following command, we will install the Tomcat online documentation, the web interface (manager webapp), and a few example webapps:

sudo apt-get install tomcat7-docs tomcat7-admin tomcat7-examples

Answer yes at the prompt to install these packages. We will get into the usage and configuration of these tools in a later section. Next, we will install the Java Development Kit.

Step Four - Install Java Development Kit (Optional)

If you are planning on developing apps on this server, you will want to be sure to install the software in this section.

The Java Development Kit (JDK) enables us to develop Java applications to run in our Tomcat server. Running the following command will install openjdk-7-jdk:

sudo apt-get install default-jdk

In addition to JDK, the Tomcat documentation suggests also installing Apache Ant, which is used to build Java applications, and a source control system, such as git. Let's install both of those with the following command:

sudo apt-get install ant git

For more information about Apache Ant, refer to the official manual. For a tutorial on using git, refer to DigitalCloud's Git Tutorial.

Step 5 - Configure Tomcat Web Management Interface

In order to use the manager webapp installed in Step 3, we must add a login to our Tomcat server. We will do this by editing the tomcat-users.xml file:

sudo nano /etc/tomcat7/tomcat-users.xml

This file is filled with comments which describe how to configure the file. You may want to delete all the comments between the following two lines, or you may leave them if you want to reference the examples:

<tomcat-users>
</tomcat-users>

You will want to add a user who can access the manager-gui and admin-gui (the management interface that we installed in Step Three). You can do so by defining a user similar to the example below. Be sure to change the password and username if you wish:

<tomcat-users>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

Save and quit the tomcat-users.xml file. To put our changes into effect, restart the Tomcat service:

sudo service tomcat7 restart

Step 6 - Access the Web Interface

Now that we've configured an admin user, let's access the web management interface in a web browser:

http://your_ip_address:8080

You will see something like the following image:

As you can see, there are four links to packages you installed in Step Three:

  • tomcat7-docs: Online documentation for Tomcat. Accessible via http://your_ip_address:8080/docs/
  • tomcat7-examples: Tomcat 7 Servlet and JSP examples. You can click through the example webapps to get a basic idea of how they work (and also look at the source code to see how they were implemented). Accessible via http://your_ip_address:8080/examples/
  • tomcat7-admin (manager-webapp): Tomcat Web Application Manager. This will allow you to manage and your Java applications.
  • tomcat7-admin (host-manager): Tomcat Virtual Host Manager.

Let's take a look at the Web Application Manager, accessible via the link or http://your_ip_address:8080/manager/html:

The Web Application Manager is used to manage your Java applications. You can Start, Stop, Reload, Deploy, and Undeploy here. You can also run some diagnostics on your apps (i.e. find memory leaks). Lastly, information about your server is available at the very bottom of this page.

Now let's take a look at the Virtual Host Manager, accessible via the link or http://your_ip_address:8080/host-manager/html/:

From the Virtual Host Manager page, you can add virtual hosts to serve your applications in.

Finished!

Your installation of Tomcat is complete! Your are now free to deploy your own webapps!

By Mitchell Anicas
LIST

'Linux' 카테고리의 다른 글

ubuntu JDK install  (0) 2015.03.05
Tomcat의 logging.properties 및 디렉토리설정  (0) 2015.02.12
Linux 방화벽 포트열기  (0) 2015.02.12
리눅스 vi 명령어모음  (0) 2015.02.12
Jetty 9 설치방법  (0) 2015.02.12
블로그 이미지

SeoHW

,

Linux 방화벽 포트열기

Linux 2015. 2. 12. 14:39
SMALL

# iptables -L  : 방화벽 설정 확인


# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT  : 3306포트 방화벽 뚫어주기

# service iptables save : 설정한 내용을 저장한다.

# /etc/init.d/iptables restart : 포트변경후 iptables 재시작


------------

서버를 재시작한 이후에도 계속 설정을 유지하는 방법중에는 iptables의 설정파일에 추가해주는 방법도 있다.

# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -s your.ip.address.com/255.255.255.255 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

위에 설정을 추가해주면 해당 아이피에서 80포트로 들어오는 패킷을 허용한다.

# /etc/init.d/iptables restart
LIST

'Linux' 카테고리의 다른 글

Tomcat의 logging.properties 및 디렉토리설정  (0) 2015.02.12
Ubuntu Tomcat install  (0) 2015.02.12
리눅스 vi 명령어모음  (0) 2015.02.12
Jetty 9 설치방법  (0) 2015.02.12
Linux 사용중인 포트확인 명령어  (0) 2015.02.11
블로그 이미지

SeoHW

,

리눅스 vi 명령어모음

Linux 2015. 2. 12. 13:34
SMALL

리눅스 vi 명령어

 

명령모드 -> 입력모드

 

a  : 현재 커서의 뒤에 입력

i : 현재 커서의 앞에 입력

 

페이지 이동

Ctrl + f : 아래 화면 페이지 이동

Ctrl + b : 위의 화면 페이지 이동

G : 파일의 제일 마지막으로 이동

gg(Shift+g) : 파일의 가장 처음으로 이동

80G : 파일의 80번째 줄로 이동

 

복사, 붙여넣기

yy : 한줄 복사

15yy : 15줄 복사

p : 현재 커서의 아래줄에 붙여 넣기

P : 현재 커서가 있는 줄에 붙여 넣기

dw : 한 줄 잘라내기

15dw : 15줄 잘라내기

 

지우기

x : 한 문자만 지우기

dd : 한 줄 잘라내기

15dd : 15줄 잘라내기

 

수정하기

r : 한 문자만 변경

R : Replace

 

vi 편집기 종료

x  : == wq

 

환경 설정

set nu : 줄 번호 보이기

set nonu : 줄 안보이기

set ts = 4 : Tab 키의 공백 넓이를 지정 (기본값: 8)

 

기타 기능

vi !/.exrc

set ts=4 등의 환경설정 저장

 

화면 분할기능

new [파일명]

Ctrl + w + w 화면간 이동


디렉토리에서 문자열 찾기

- 파일 안에 내용을 찾는 검색어

 

find ./ : 현재 디렉토리에서

find ./ -name "*.txt" -print | xargs grep "찾는 문자열"

 

vi 에디터에서 문자열 찾기

:/long ( 아래로 "long"이라는 문자열 찾기 )

:?long ( 위로  ~ )

문자열을 찾은 후에 다음 문자열로 이동할 때에는 n, 이전은 N

 

LIST

'Linux' 카테고리의 다른 글

Ubuntu Tomcat install  (0) 2015.02.12
Linux 방화벽 포트열기  (0) 2015.02.12
Jetty 9 설치방법  (0) 2015.02.12
Linux 사용중인 포트확인 명령어  (0) 2015.02.11
ubuntu 에서 iptables 설정 포트열기 예제  (0) 2015.02.11
블로그 이미지

SeoHW

,
SMALL

프로그램안에서 사용해야 할 다량의 문자열들을 정의하는데 있어서 효율적인 방법은 소스코드에 모든 내용을 포함시키기 보다는 외부에 내용을 저장해 놓고 필요할 때 마다 읽어오는 방법입니다.

안드로이드에서는 문자열로서 사용하기 위한 데이터를 보관하기 위한 기법으로 리소스 XML에 내용을 기술하는 방법과 SQLite를 사용하는 방법, 그리고 assets 디렉토리를 사용하는 방법을 제공해 주고 있습니다.

오늘 소개할 내용은 assets 디렉토리에 저장된 텍스트 파일을 프로그램내로 읽어들이는 내용입니다.

assets 디렉토리

안드로이드 프로젝트를 이클립스 상에서 보면 assets라는 (평소에는 잘 사용하지 않는) 디렉토리에 있습니다. 프로그램과 직접적으로 연관되지 않은 비 리소스 파일들을 저장해 놓고 필요한 경우 스트림을 생성하여 읽어들이기 위한 저장공간입니다.

이 폴더안에 test.txt라는 파일을 넣었다고 가정하고 이 파일의 내용을 프로그램의 Runtime시에 읽어오는 방법을 소개하겠습니다.


AssetManager의 객체 생성

Context 클래스 내에 보면 getResource()라는 메소드가 있습니다. getResource()라는 메소드는 Resources 라는 클래스의 객체를 리턴합니다. 이 객체는 App이 갖고 있는 자원에 접근할 수 있는 객체입니다. 이 객체를 통해서 AssetManager라는 객체를 얻을 수 있습니다.

<strong>Context 클래스</strong>
<strong>Resources getResource();</strong><br />리소스 객체를 얻어옵니다.


만약 Activity안에서 AssetManager객체를 얻고자 한다면 다음과 같이 사용할 수 있습니다.

Resources r = getResource();


Context 클래스는 Activity 클래스의 상위 클래스이기 때문에 Activity 안에서는 Context클래스 내의 기능들을 자기것인양 사용할 수 있습니다.

리소스 객체를 얻은 후에는 이 리소스 객체를 통해서 AssetManager 객체를 얻어옵니다.

<strong>Resources클래스</strong>
<strong>AssetManager getAssets();</strong><br />AssetManager 객체를 얻어옵니다.




 

AssetManager를 통하여 파일 열기

AssetManager 객체가 생성되면 이 객체의 open() 메소드를 사용하여 InputStream 객체를 얻을 수 있습니다. open() 메소드는 호출 시에 대상 파일의 이름을 문자열로 전달합니다. 파일이 위치한 경로는 이클립스 프로젝트 내의 assets 라는 폴더로 이미 확정이 되어 있는 상태이기 때문에 전달하는 파라미터는 파일의 이름만을 전달합니다. 주의하실 점은 이 메소드를 사용하려면 try { } ~ catch { } 블록으로 묶어 주어야 한다는 점 입니다. 그래서 Asset객체를 통해서 InputStream을 여는 과정은 다음과 같아집니다.

  1. AssetManager am = m_context.getResources().getAssets();  
  2. InputStream is = null;  
  3.   
  4. try {  
  5.     is = am.open("contact.txt");  
  6.     // 스트림을 사용합니다.  
  7. catch (Exception e) {  
  8.     // 에러가 발생한 경우의 처리  
  9. finally {  
  10.     if (is != null) {  
  11.         try {  
  12.             is.close();  
  13.             is = null;  
  14.         } catch (Exception e) {}  
  15.     }  
  16. }  
  17.   
  18. am = null;  




 

test.txt 파일을 읽기

Context객체와 읽어야 할 파일이름을 전달하였을 때, 해당 파일의 내용을 읽어서 문자열로 리턴해 주는 함수를 구현해 본다면 다음과 같이 구현할 수 있겠습니다.

  1. String readAsset(Context context, String file_name) {  
  2.     AssetManager am = context.getResources().getAssets();  
  3.     InputStream is = null;  
  4.     // 읽어들인 문자열이 담길 변수  
  5.     String result = null;  
  6.   
  7.     try {  
  8.         is = am.open(file_name);  
  9.         int size = is.available();  
  10.   
  11.         if (size > 0) {  
  12.             byte[] data = new byte[size];  
  13.             is.read(data);  
  14.             result = new String(data);  
  15.         }  
  16.     } catch (Exception e) {  
  17.         e.printStackTrace();  
  18.     } finally {  
  19.         if (is != null) {  
  20.             try {  
  21.                 is.close();  
  22.                 is = null;  
  23.             } catch (Exception e) {}  
  24.         }  
  25.     }  
  26.   
  27.     am = null;  
  28.     return result;  
  29. }  


Activity클래스 안에서 사용방법은 다음과 같습니다.

String data = readAsset(this, "test.txt");
LIST
블로그 이미지

SeoHW

,

Webview 사용법

Android 2015. 2. 12. 13:21
SMALL

웹페이지를 표시하는 뷰이다.


상속구조는 아래와 같다.

   ↳ android.view.View 
         ↳ android.webkit.WebView

웹브라우저에서 하는 역할을 모두 할 수 있으며 액티비티내에서 화면의 일부로 온라인컨텐츠를 표시할수 있다.
WebKin render engine을 사용하며 이전페이지, 다음페이지, 확대/축소, 텍스트검색등의 기능을 포함한다.

zoom기능을 활성화하려면 WebSettings.setBuiltInZoomControls(boolean)을 사용하라.

액티비티에서 인터넷을 억세스하고 웹페이지를 WebView에 표시하려면 아래 퍼미션을 매니페스트 파일에 추가하라.

<uses-permission android:name="android.permission.INTERNET"/>

기본적인 사용법
기본적으로 WebView는 브라우져와 유사한 위젯을 제공하지는 않는다. 자바스크립트는 비활성화되어 있으며 웹페이지에러는 무시된다. 그냥 UI의 일부로 HTML을 표시하고자 한다면 이정도면 충분하다. 만일 full-blown 웹브라우져를 원한다면 WebView를 이용하는것보다 그냥 인텐트를 날려서 브라우져에서 표시하고자 할것이다. 아래와 같이...

   Uri uri = Uri.parse("http://www.example.com");
   
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
   startActivity
(intent);
 
액티비티에서 WebView를 제공하고자 한다면 layout에 <WebView>를 추가하거나 onCreate()에서 액티비티자체를 WebView로 지정하면 된다.
   WebView webview = new WebView(this);
   setContentView
(webview);
 
이어서 원하는 웹페이지를 로드한다.

// Simplest usage: note that an exception will NOT be thrown
 
// if there is an error loading this page (see below).
 webview
.loadUrl("http://slashdot.org/");

 
// OR, you can also load from an HTML string:
 
String summary = "<html><body>You scored <b>192</b> points.</body></html>";
 webview
.loadData(summary, "text/html", "utf-8");
 
// ... although note that there are restrictions on what this HTML can do.
 
// See the JavaDocs for loadData() and loadDataWithBaseURL() for more info.

WebView는 원하는 동작을 구현하기 위해 몇가지 수정가능한 방법을 제공한다.
 - WebChromeClient의 subclass를 생성하고 설정한다. 이 클래스는 브라우져UI에서 어떤 동작이 발생하면 호출된다. 예를 들어 update과정이나 자바스크립트 경고같은 것들이 이 클래스로 전달된다.
 - WebViewClient의 서브클래스를 생성하고 설정한다. 콘텐츠의 렌더링과 연관된 동작이 발생하면 호출된다. 예를 들어 에러나 폼서브미션시(form submission)에 호출된다. shouldOverrideUrlLoading()함수를 통해 URL이 로드되기전에 원하는 작업을 할 수도 있다.
 - WebSettings의 변경가능, setJavaScriptEnabled()로 자바스크립트를 활성화할 수 있다.
 - JavaScript-to-Java 인터페이스를 추가할 수 있다. addJavascriptInterface(Object, String)메소드로 가능하다. 이 함수는 자바오브젝트를 WebView에 바인드할 수 있다. 이렇게 하여 웹페이지의 자바스크립트를 제어할 수 있다.

아래 좀더 복잡한 예제가 있다, 에러핸들링의 표시, 셋팅, 진행상태 통지등의 예를 볼수 있다.

// Let's display the progress in the activity title bar, like the
 
// browser app does.
 getWindow
().requestFeature(Window.FEATURE_PROGRESS); // 타이틀바에 진행상태 아이콘표시모드로 변경한다.

 webview
.getSettings().setJavaScriptEnabled(true); // 자바스크립트를 활성화한다.

 
final Activity activity = this;
 webview
.setWebChromeClient(new WebChromeClient() { // WebChromeClient를 설정하고 진행상태 변동상태를 화면에 반영한다.
   
public void onProgressChanged(WebView view, int progress) {
     
// Activities and WebViews measure progress with different scales.
     
// The progress meter will automatically disappear when we reach 100%
     activity
.setProgress(progress * 1000);
   
}
 
});

 webview
.setWebViewClient(new WebViewClient() { // WebViewClient를 설정하여 에러발생시 토스트로 표시한다.
   
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
     
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
   
}
 
});

 webview
.loadUrl("http://slashdot.org/"); // 원하는 웹페이지를 연다.
 
쿠키와 윈도우관리
보안상의 이유로 당신의 애플리케이션은 자체 캐시와 쿠키 등의 저장소들을 가지고 있다. 이것은 브라우져애플리케이션의 데이터와 공유되지 않는다. 쿠키의 경우 스래드로 분리되어 관리된다. 그래서 UI thread에 의해 블럭되지 않는다. 애플리케이션에서 쿠리정보를 참조하고 싶다면 CookieSyncManager를 사용하라.

기본적으로 HTML에서 새로운 창에 여는기능은 무시된다. 이는 자바스크립트나 링크의 대상의 속성에의해 가능해진다. WebChromeClient를 수정하여 여러개의 윈도우로 페이지를 여는것을 당신 마음대로 변경할 수 있다.

액티비티의 기본동작은 configuration이 변경되면 destroy되었다가 다시 create되는것이다. 이 경우 WebView는 웹페이지를 다시 로딩하게 된다. 이게 싫다면 orientation과 keyboardHidden값을 변경하면 다시로드하지 않고 처리된다.

자주 사용된느 WebView관련 함수들
addJavascriptInterface() 자바스크립트의 자바 객체 접근 허용

createSnapshot() 현 페이지의 스크린샷 생성

getSettings() 설정을 조정하는  WebSettings 객체 반환 

loadData() 브라우저에 주어진 문자열 데이터 로딩

loadDataWithBaseURL() 기준 URL을 사용해 주어진 데이터 로딩

loadUrl() 주어진 URL을 사용해 웹페이지 로딩

setDownloadListener() 사용자가 .zip이나 .apk 파일을 다운받는 경우 등의 다운로드 이벤트의 콜백 등록

setWebChromeClient() 제목이나 진행률 표시줄을 업데이트하거나 자바스크립트 대화상자를 여등 등, WebView 영역밖에서 실행되는 이벤트의 콜백을 등록

setWebViewClient() 리소스 로딩하기, 키 눌림, 인증 요청 등의 이벤트를 방해하도록 애플리케이션이 브라우저에 걸림돌을 설정함.

stopLoading() 현재 페이지 로딩 멈추기

LIST
블로그 이미지

SeoHW

,
SMALL

Oracle의 Java 7 JDK가 이제 라즈베리 파이를 공식 지원한다. 이후의 "Raspbian" 이미지에는 Java가 기본적으로 포함되며, 현재 사용자들은 다음과 같은 명령으로 설치할 수 있다.

 
sudo apt-get update && sudo apt-get install oracle-java7-jdk
 
오랜기간 목표였던, "유명 프로그래밍 언어들의 지원이 완료"되었다고 말했다.
LIST

'raspberry pi' 카테고리의 다른 글

Raspberry Pi JDK설치  (0) 2015.02.13
블로그 이미지

SeoHW

,

Jetty 9 설치방법

Linux 2015. 2. 12. 13:17
SMALL

CentOS 6 에서 jetty 9 설치하기 + jenkins

jetty 9 (현재 최신 버전)을 설치하는 하고 거기에 jenkins 까지 올려보겠습니다

STEP1 : jetty 설치

rpm이나 yum을 이용하고 싶으나 공식적인 저장소가 없으므로 기본적인 방법을 이용해보겠습니다.

먼저 jetty 9의 경우 JDK 1.7 버전이 요구됩니다.
# yum install java-1.7.0-openjdk
우선 tmp 폴더에 jetty를 다운로드 받습니다.(http://download.eclipse.org/jetty/stable-9/dist/ 에서 최신 버전을 확인합니다.)
# cd /tmp
# wget wget http://download.eclipse.org/jetty/9.1.0.v20131115/dist/jetty-distribution-9.1.0.v20131115.tar.gz -O jetty.tar.gz
tar -xf jetty.tar.gz

jetty라는 사용자를 생성하고 jetty를 /srv/jetty 경로로 이동시킵니다. 이제 /srv/jetty 가 jetty 홈경로입니다. 그리고 권한까지 생성합니다.
# useradd jetty
# mv jetty /srv
# chown -R jetty:jetty /srv/jetty
서비스에 등록한다.
# ln -s /srv/jetty/bin/jetty.sh /etc/init.d/jetty
# chkconfig --add jetty
# chkconfig jetty on
등록된 서비스를 수정한다. 최초 주석 아래쪽에 하단 내용을 추가한다. (본인의 경우 8081을 작동포트로 하였다.)
# vi /etc/init.d/jetty

# jetty에 추가할 내용
JETTY_HOME=/srv/jetty
JETTY_USER=jetty
JETTY_ARGS=jetty.port=8081
JETTY_LOGS=/srv/jetty/logs

8081 방화벽을 해제한다.
# vi /etc/sysconfig/iptables

# 방화벽에 추가할 내용
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
jetty를 기동하고 내용을 확인한다.
# service jetty start

# curl http://localhost:8081


1차적으로 jetty 가동까지는 확인하였습니다.


STEP2 : jenkins 설치


jetty 기본 webapps 경로에 jenkins.war 최신 버전을 다운로드합니다.
권한 설정을 위해서 jenkins.xml 파일을 webapps에 생성합니다.
* jetty 9 부터는 contexts 폴더가 사라지고 관련 설정을 webapps 폴더에서 합니다.
#  /srv/jetty/webapps/jenkins.xml
<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<!-- ==================================================================
Configure and deploy the jenkins web application in $(jetty.home)/webapps/jenkins

Note. If this file did not exist or used a context path other that /jenkins
then the default configuration of jetty.xml would discover the jenkins
webapplication with a WebAppDeployer.  By specifying a context in this
directory, additional configuration may be specified and hot deployments 
detected.
===================================================================== -->

<Configure class="org.eclipse.jetty.webapp.WebAppContext">


  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Required minimal context configuration :                        -->
  <!--  + contextPath                                                  -->
  <!--  + war OR resourceBase                                          -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="contextPath">/jenkins</Set>
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>

  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Optional context configuration                                  -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="extractWAR">true</Set>
  <Set name="copyWebDir">false</Set>
  <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
  <!--<Set name="overrideDescriptor"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.d/override-web.xml</Set>-->

  <Get name="securityHandler">
    <Set name="loginService">
      <New class="org.eclipse.jetty.security.HashLoginService">
        <Set name="name">Jenkins Realm</Set>
        <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
            <!-- To enable reload of realm when properties change, uncomment the following lines -->
            <!-- changing refreshInterval (in seconds) as desired                                -->
            <!-- 
           <Set name="refreshInterval">5</Set>
           <Call name="start"></Call>
           -->
      </New>
    </Set>
    <Set name="authenticator">
      <New class="org.eclipse.jetty.security.authentication.FormAuthenticator">
        <Set name="alwaysSaveUri">true</Set>
      </New>
    </Set>
    <Set name="checkWelcomeFiles">true</Set>
  </Get>
 
  <!-- Add context specific logger
 <Set name="handler">
   <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
     <Set name="requestLog">
    <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
      <Set name="filename"><Property name="jetty.logs" default="./logs"/>/jenkins-yyyy_mm_dd.request.log</Set>
      <Set name="filenameDateFormat">yyyy_MM_dd</Set>
      <Set name="append">true</Set>
      <Set name="LogTimeZone">GMT</Set>
    </New>
     </Set>
   </New>
 </Set>
 -->

</Configure>

만약 $JETTY_HOME/etc/realm.properties 파일이 존재하지 않으면 생성시켜줍니다.
  1. demo 에서 복사
# cp /srv/jetty/demo-base/etc/realm.properties /srv/jetty/etc
  2. 직접생성
# vi /srv/jetty/etc/realm.properties
#
# This file defines users passwords and roles for a HashUserRealm
#
# The format is
#  <username>: <password>[,<rolename> ...]
#
# Passwords may be clear text, obfuscated or checksummed.  The class
# org.eclipse.util.Password should be used to generate obfuscated
# passwords or password checksums
#
# If DIGEST Authentication is used, the password must be in a recoverable
# format, either plain text or OBF:.
#
jetty: MD5:164c88b302622e17050af52c89945d44,user
admin: CRYPT:adpexzg3FUZAk,server-administrator,content-administrator,admin,user
other: OBF:1xmk1w261u9r1w1c1xmq,user
plain: plain,user
user: password,user

# This entry is for digest auth.  The credential is a MD5 hash of username:realmname:password
digest: MD5:6e120743ad67abfbc385bc2bb754e297,user


마지막으로 다시 추가된 파일들을 위해서 권한 설정을 하고 재시작을 합니다.
# chown -R jetty:jetty /srv/jetty/webapps
chown -R jetty:jetty /srv/jetty/etc

# service jetty restart
curl http://localhost:8081
LIST

'Linux' 카테고리의 다른 글

Ubuntu Tomcat install  (0) 2015.02.12
Linux 방화벽 포트열기  (0) 2015.02.12
리눅스 vi 명령어모음  (0) 2015.02.12
Linux 사용중인 포트확인 명령어  (0) 2015.02.11
ubuntu 에서 iptables 설정 포트열기 예제  (0) 2015.02.11
블로그 이미지

SeoHW

,
SMALL

netstat  -ln       ====>  사용중인 포트번호들이 나옴   (tcp/ udp 모두나옴)

 

netstat  -lnp  | grep 포트번호      

   =======>  해당포트번호가 사용중인지 아닌지 체크

LIST

'Linux' 카테고리의 다른 글

Ubuntu Tomcat install  (0) 2015.02.12
Linux 방화벽 포트열기  (0) 2015.02.12
리눅스 vi 명령어모음  (0) 2015.02.12
Jetty 9 설치방법  (0) 2015.02.12
ubuntu 에서 iptables 설정 포트열기 예제  (0) 2015.02.11
블로그 이미지

SeoHW

,
SMALL

/etc/iptables.rules 수정하기

 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 8080 -j ACCEPT

LIST

'Linux' 카테고리의 다른 글

Ubuntu Tomcat install  (0) 2015.02.12
Linux 방화벽 포트열기  (0) 2015.02.12
리눅스 vi 명령어모음  (0) 2015.02.12
Jetty 9 설치방법  (0) 2015.02.12
Linux 사용중인 포트확인 명령어  (0) 2015.02.11
블로그 이미지

SeoHW

,