- 浏览: 1167557 次
- 性别:
- 来自: 火星郊区
-
博客专栏
-
-
OSGi
浏览量:0
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
文章列表
将web容器置于OSGi框架下,其实就是将web容器做成OSGi支持的Bundle,再安装到OSGi框架中,这里使用的是Jetty容器。下面作详细的介绍。
1、创建一个Eclipse插件项目,在此插件下创建一个WebRoot文件夹,里面创建两个文件夹一个是images,一个是pages,里面分别放置一个图片文件,一个简单的html页面和一个简单的jsp文件。大致目录结构如下图所示:
2、jsp文件的内容如下:
Html代码
<
%@ page
language
=
"java"
contentType ...
先提三点
不要使用System.out.println作为调试工具
启用所有组件的详细的日志记录级别
使用一个日志分析器来阅读日志
1、条件断点
想象一下我们平时如何添加断点,通常的做法是双击行号的左边。在debug视图
中,BreakPoint
View将所有断点都列出来,但是我们可以添加一个boolean类型的条件来决定断点是否被跳过。如果条件为真,在断点处程序将停止,否则断点被跳过,
程序继续执行。
2、异常断点
在断点view中有一个看起来像J!的按钮,我们可以使用它添加一个基于异常的断点, ...
此文档主要介绍个人认为比较实用的技巧,常用技巧不做介绍。资料来源于网络,自己再集中整理的。
一、实用类快捷键
1 常用熟悉的快捷键
CTRL+C(复制)、CTRL+X(剪切)、CTRL+Z(撤销)、CTRL+F(查找)、CTRL+H(搜索文 ...
转自:http://www.raychase.net/?p=698
这篇文章,大部分内容,是周五我做的一个关于如何进行Java多线程编程的Knowledge
Sharing的一个整理,我希望能对Java从第一个版本开始,在多线程编程方面的大事件和发展脉络有一个描述,并且 ...
1、创建业务接口类及其实现类
Java代码
public
interface
Validator {
public
boolean
validate(String username, String password)
throws
Exception;
}
Java代码
public
class
UserValidatorImpl
implements
Validator {
public
boo ...
Declarative Services
是一个面向服务的组件模型,它制订的目的是更方便地在OSGi服务平台上发布、查找、绑定服务,对服务进行动态管理,如监控服务状态以及解决服务之间的复
杂的依赖关系等问题。Declarative
Services采用服务组 ...
1、文件目录如下:
F:\study_osgi
run.bat
org.eclipse.osgi_3.3.0.v20070530.jar
configuration
config.ini
plugins
org.apache.felix.fileinstall-0.9.2.jar
load
2、config.ini文件的内容
osgi.bundles=plugins/org.apache.f ...
一般情况下,服务对象在注册后,任何其它的Bundle在请求该服务时,OSGi容器都是返回同一个对象。如果我们需要为每一个
Bundle消费者返回不同的服务对象,或者,在真正需要该服务对象时才创建。对于这些情况,我们可以创建一个实现ServiceFactory接口的
类,把该类的对象注册为服务(不是注册实际的服务对象),这样,当Bundle请求该服务时,ServiceFactory实现类将接管该请求,为每个
Bundle新建一个实际的服务对象。以下是服务工厂的使用范例源码:
1、服务接口及其实现类
Java代码
public
interface ...
当多个Bundle使用同一接口名注册服务时,服务的获取策略如下:OSGi容器会返回排行最高的服务,即,返回注册时SERVICE_RANKING属性值最大的服务。如果有多个服务的排行值相等,那么OSGi容器将返回PID值最小的那个服务。
如果 ...
首先介绍一下背景,公司访问外网有限制,项目组大部分人员不能访问maven的central repository,因此在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上
环境是:nexus-2.1.1、maven-3.0.4、jdk-1.6.0_32
一 ...
OSGi Core定义了一个服务层,提供了一个Bundle之间交互的简单机制,通过注册Java Object 至OSGi service registry。
Blueprint Container
(1) Blueprint Configuration
默认配置文件位于:ProjectDir/src/main/resources/OSGI-INF/blueprint
默认XML文件命名空间:
Xml代码
<?
xml
version
=
"1.0"
encoding ...
使用maven的过程中,常常会因为一些警告而不能通过编译,例如碰到下面的警告
泛型警告
\Workspaces\shindig\java\common\src\main\java\org\apache\shindig
\protocol\BaseRequestItem.java:[253,28] 警告:[unchecked] 未经检查的类型使用
找到: java.lang.Object
需要: java.util.List<java.lang.String>
过时警告
workspace\jetspeed ...
说明:
1,本文采用的Mybatis框架版本为: mybatis-3.0.4.jar
2, 以持久化一个简单的User bean为例
User实体类的代码如下:
package bean;
public class User {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName( ...
CREATE TABLE `a` (
`a1` VARCHAR(10) DEFAULT NULL,
`b1` VARCHAR(10) DEFAULT NULL,
`c1` VARCHAR(10) DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8
CREATE TABLE `b` (
`a2` VARCHAR(10) DEFAULT NULL,
`b2` VARCHAR(10) DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8
创建出表,表内数据如下:
...
package com.laozizhu.designpattern.simplefactory;
/**
* 追MM与设计模式的JAVA实现 - 简单工厂方法。<br>
* <br>
* 追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,<br>
* 虽然口味有所不同,但不管你带MM去麦当劳或肯德基,<br>
* 只管向服务员说“来四个鸡翅”就行了。 <br>
* 麦当劳和肯德基就是生产鸡翅的Factory<br>
* <br>
* 工厂模式 :<br& ...