по идее, нужно бы так:
1. dynamic web app
2. создать entity bean (@Entity)
3. new->web service->bottom-up
но eclipse виснет при деплоинге сервиса на сервер (краткий поиск по гуглу показал, что неверно настроен сервер, разобраться позже)
временно сделано руками таким образом:
делать так:
1. new->dynamic web prj
2. создать entity bean (@Entity)
3. нарисовать сервис:
@WebService()
public class SendDocumentService {
@WebMethod()
public Document processOrder(Document docBean) {
// Выполнить обработку...
System.out.println("blah blah " + docBean.getId());
return docBean;
}
}
4. деплоить на jBoss (wsdl-ка сгенерится)
5. запросить http://localhost:8080/MyProject/MyService?wsdl
понедельник, 26 июля 2010 г.
среда, 21 июля 2010 г.
локализация в java
пример для самого простого:
1. создать файлы MyResource.properties, MyResource_ru.properties
2.MyResource.properties:
HELLO_TEXT=Hello, world!
GOODBYE_TEXT=Goodbye everyone!
CANCEL_BUTTON_TEXT=Cancel
3.MyResource_ru.properties:
HELLO_TEXT=здравствуй, мир!
GOODBYE_TEXT=до свидания!
CANCEL_BUTTON_TEXT=выход
4. Доступ:
ResourceBundle res = ResourceBundle.getBundle("MyResource");
String strHello = res.getString("HELLO_TEXT");
String strGoodbye = res.getString("GOODBYE_TEXT");
Подробнее и полнее:
http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/
1. создать файлы MyResource.properties, MyResource_ru.properties
2.MyResource.properties:
HELLO_TEXT=Hello, world!
GOODBYE_TEXT=Goodbye everyone!
CANCEL_BUTTON_TEXT=Cancel
3.MyResource_ru.properties:
HELLO_TEXT=здравствуй, мир!
GOODBYE_TEXT=до свидания!
CANCEL_BUTTON_TEXT=выход
4. Доступ:
ResourceBundle res = ResourceBundle.getBundle("MyResource");
String strHello = res.getString("HELLO_TEXT");
String strGoodbye = res.getString("GOODBYE_TEXT");
Подробнее и полнее:
http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/
вторник, 8 июня 2010 г.
хранимки в ms sql
упрощённый общий вид.
DROP PROCEDURE get_info
CREATE PROC get_info
@arg_A nvarchar(max),
@arg_B nvarchar(max)
AS
select field_D, field_E
from Table_A inner join Table_B
on Table_B.id = Table_A.id_fkey
where Table_A.field_A = @arg_A
and Table_A.field_B = @arg_B
EXEC get_info @arg_A ='67890', @arg_B ='12345'
DROP PROCEDURE get_info
CREATE PROC get_info
@arg_A nvarchar(max),
@arg_B nvarchar(max)
AS
select field_D, field_E
from Table_A inner join Table_B
on Table_B.id = Table_A.id_fkey
where Table_A.field_A = @arg_A
and Table_A.field_B = @arg_B
EXEC get_info @arg_A ='67890', @arg_B ='12345'
четверг, 27 мая 2010 г.
Добавление taglib в project
необходимые шаги для добавления taglib в проект (JSTL1.1 в качестве примера):
1. добавить taglib-джарник в WEB-INF\lib
2. (возможно, не требуется) разархивировать tld-файл из джарника и скопировать также в WEB-INF (или в поддиректорию, например, WEB-INF\tags)
3. в web.xml добавить:
<_jsp-config>
<_taglib>
<_taglib-uri>http://java.sun.com/jstl/core<_/taglib-uri>
<_taglib-location>/WEB-INF/tags/c.tld<_/taglib-location>
<_/taglib>
<_/jsp-config>
d) включить taglib на jsp-страницу:
<_%@ taglib uri="http://java.sun.com/jstl/core"; prefix="c" %>
<%-- блогспот хавает выражения в треугольных скобках) -->
--------
If web.xml is generated with XDoclet you have to put the web.xml part in a XDoclet merge file named "taglibs.xml".
1. добавить taglib-джарник в WEB-INF\lib
2. (возможно, не требуется) разархивировать tld-файл из джарника и скопировать также в WEB-INF (или в поддиректорию, например, WEB-INF\tags)
3. в web.xml добавить:
<_jsp-config>
<_taglib>
<_taglib-uri>http://java.sun.com/jstl/core<_/taglib-uri>
<_taglib-location>/WEB-INF/tags/c.tld<_/taglib-location>
<_/taglib>
<_/jsp-config>
d) включить taglib на jsp-страницу:
<_%@ taglib uri="http://java.sun.com/jstl/core"; prefix="c" %>
<%-- блогспот хавает выражения в треугольных скобках) -->
--------
If web.xml is generated with XDoclet you have to put the web.xml part in a XDoclet merge file named "taglibs.xml".
понедельник, 24 мая 2010 г.
Jahia CE. templates
Jahia CE
заметки по templates.
настройки ПО для создания темплейтов: http://www.jahia.org/cms/lang/en/home/Jahiapedia/Jahia_Templates/Environment_and_tools
1. для поддержки кириллицы необходимо сами jsp-файлы создавать в кодировке UTF-8, иначе томкэт (?) их не распознаёт. (поменять можно в эклипсе - при этом рушится
русскоязычное в нём, или эе в простом виндовом блокноте)
2. при создании темплейта в
C:\javamisc\maven\apache-maven-2.2.1\bin\pgu_templates\src\main\webapp\WEB-INF\templates.xml
должно содержаться нечто подобное:
page-type="pgu_templates:test"/>
при этом home.jsp лежит в C:\javamisc\maven\apache-maven-2.2.1\bin\pgu_templates\src\main\webapp
3. структура темплейта:
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
Content that is going to appear in the html section
Content that is going to appear in the html section
4. деплоинг в jahia набора темплейтов (не из эклипса, просто из ОС):
C:\javamisc\maven\apache-maven-2.2.1\bin\pgu_templates>C:\javamisc\maven\apache-maven-2.2.1\bin\mvn install war:exploded jahia:deploy
после можно томкэт не перезапускать, подхватывается на лету
теоретически при работе через эклипс в момент создания проекта maven ругается, что сделать этого не может
(As long as the bug http://jira.codehaus.org/browse/MNGECLIPSE-1054 has not been fixed, you need to rename the resource bundle under
src\main\resources\jahiatemplates\__resourceBundleName__.properties to the name you have chosen in the popup, otherwise it would have been renamed already.)
у меня пофиксить злобное поведение пока не получилось.
================================
5. главная страница (например, home.jsp)
никакого другого jsp-кода вставлять нельзя, зато страница вставляет файл при показе файла, а не при транслиции (в отличие от )
6.
в definitions.cnd [содержимое квадратных скобок] должно совпадать с page-type в templates.xml.
definitions.cnd:
[pgu_templates:home] > jnt:page
containerList navLink (jnt:navLink)
[pgu_templates:portal] > jnt:page
containerList navLink (jnt:navLink)
__________________________
templates.xml:
...
page-type="pgu_templates:portal"/>
...
пятница, 14 мая 2010 г.
android. приложение-мастер (страницы, переходы по кнопкам). activities
чтобы не забыть.
нигде не встретила информации, как создавать многостраничные приложения, везде только крошечные примеры в один класс длиной.
по собственному опыту (возможно, решение далеко от оптимального) - основываться на Activities (собственно окна, обладают функуиональностью, которую в не наследующих от Activity классах можно получить только
при помощи контекста класса, от неё наследующего). из активностей создавать кнопки, функционал - в листенерах кнопок.
1. активность
public class Register extends Activity{
public void createControls(){
try{
//сохранение контекста
Common.setContextRegister(this);
// выбрать xml с интерфейсом
setContentView(R.layout.register_page);
ButtonsHolder.setBackBtn(new BackBtn( (Button) findViewById(R.id.backFromRegisterBtn), this));
}
catch (Exception e){
e.printStackTrace();
Common.showAlert("произошла ошибка: "+e.toString(), this);
}
}
2. прописать активность в AndroidManifest.xml
android:label="@string/app_name">
android:label="@string/app_name">
3.
Контексты активностей (this) сохранять отдельно, основываясь на них, завершать активности (например, по нажатию кнопок):
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* кнопка "назад"
*
*/
public class BackBtn extends AbstractBtn{
private Context contextToClose;
public BackBtn(Button btn, Context contextToClose) {
super(btn);
this.contextToClose = contextToClose;
}
@Override
protected void addListener() {
btn.setOnClickListener(new OnClickListener() {
// обработка нажатия кнопки
public void onClick(View arg0) {
((Activity)contextToClose).finish();
}
});
}
}
4. запускать новые активности - например, тоже по нажатию кнопок. примерно так:
//запуск активности
Intent passInfo = new Intent();
passInfo.setClassName("ru.diasoft.repareMyStreet", "ru.diasoft.repareMyStreet.Register");
Common.getContextStartPage().startActivity(passInfo);
5. да, google maps. MapActivity - тоже активность
public class Map extends MapActivity {
...
}
или
public class Smth extends Activity {
...
}
Подписаться на:
Комментарии (Atom)