java学习

java学习

 

jersey面向资源开发5

jersey容器发布web应用不需要web.xml的开发。
1.新建容器扫描类
package com.example;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import org.glassfish.jersey.servlet.ServletContainer;
@WebServlet(
initParams = @WebInitParam(name = "jersey.config.server.provider.packages", value = "com.example"), 
urlPatterns = "/webapi/*", 
loadOnStartup = 1)
public class AirServlet extends ServletContainer {
private static final long serialVersionUID = 1L;
}
在com.example包中的资源服务类都可以访问到

posted @ 2017-07-26 16:15 杨军威 阅读(75) | 评论 (0)编辑 收藏

jersey面向资源开发4

jersey不用添加扫描包,自动扫描资源服务类。
在web.xml文件中添加
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
这样可以自动扫描所有的资源服务类

posted @ 2017-07-26 15:41 杨军威 阅读(121) | 评论 (0)编辑 收藏

jersey面向资源开发3

在使用jersey中,web.xml文件也可以不用。
1、新建jersey容器类
package com.example;
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
@ApplicationPath("/webapi/*")
public class AirResourceConfig extends ResourceConfig {
public AirResourceConfig() {
packages("com.example");
}
}
或者
package com.example;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/webapi/*")
public class AirApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
final Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(MyResource.class);
return classes;
}
}
把所有的资源服务类加入到set中
@ApplicationPath定义了访问的地址,packages("com.example");定义了扫描的资源服务类的包

posted @ 2017-07-26 15:10 杨军威 阅读(85) | 评论 (0)编辑 收藏

jersey面向资源开发2

1、先在pom.xml文件中添加依赖:
 <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet-core</artifactId>
        </dependency>
    </dependencies>
2、在web.xml中添加jersey类
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.AirApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
其中com.example.AirApplication类扫描所有的对外服务类
3、新建对外服务类
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
/**
 * Root resource (exposed at "myresource" path)
 */
@Path("myresource1")
public class MyResource1 {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getIt() {
        return "Got it222!";
    }
}
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
/**
 * Root resource (exposed at "myresource1" path)
 */
@Path("myresource1")
public class MyResource1 {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getIt() {
        return "Got it222!";
    }
}
4、在AirApplication类中扫描服务类
package com.example;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
public class AirApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
final Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(MyResource.class);
classes.add(MyResource1.class);
return classes;
}
}
这样在tomcat中启动就可以访问资源类中的方法。

posted @ 2017-07-26 14:53 杨军威 阅读(110) | 评论 (0)编辑 收藏

jersey面向资源开发1

1.新建一个实体类
package com.example.domain;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "device")
public class Device {
private String deviceIp;
private int deviceStatus;
public Device() {
}
public Device(String deviceIp) {
super();
this.deviceIp = deviceIp;
}
@XmlAttribute
public String getIp() {
return deviceIp;
}
public void setIp(String deviceIp) {
this.deviceIp = deviceIp;
}
@XmlAttribute
public int getStatus() {
return deviceStatus;
}
public void setStatus(int deviceStatus) {
this.deviceStatus = deviceStatus;
}
}
其中@XmlRootElement(name = "device")代表xml文件的根节点
@XmlAttribute代表xml文件的属性节点
在pom.xml文件中依赖下面2包
<dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-grizzly2-http</artifactId>
        </dependency>
        <!--  get JSON support: -->
         <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
        </dependency>
       
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
在服务类中编写
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.example.domain.Device;
@Path("myresource")
public class MyResource {
@GET
 @Produces({ MediaType.APPLICATION_JSON })
public Device getIt() {
Device d=new Device("1.1.1.1");
d.setStatus(2);
return d;
}
}
建立测试类:
package com.example;
import java.io.IOException;
import java.net.URI;
import org.glassfish.grizzly.http.server.HttpServer;
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.server.ResourceConfig;
public class Main {
public static final String BASE_URI = "http://localhost:8080/myapp/";
public static HttpServer startServer() {
final ResourceConfig rc = new ResourceConfig().packages("com.example");
return GrizzlyHttpServerFactory.createHttpServer(URI.create(Main.BASE_URI), rc);
}
public static void main(String[] args) throws IOException {
final HttpServer server = Main.startServer();
}
}
启动后在浏览器中输入http://localhost:8080/myapp/myresource,页面返回
{"ip":"1.1.1.1","status":2}
返回json格式的数据。

posted @ 2017-07-26 11:38 杨军威 阅读(140) | 评论 (0)编辑 收藏

ibpm根据流程定义删除对应的流程部署的步骤

根据流程定义中的pdkey-->查询出所有的流程定义--》根据流程定义中的DeploymentId删除流程部署

posted @ 2017-07-20 10:18 杨军威 阅读(139) | 评论 (0)编辑 收藏

axis编写客户端程序调用webservice服务端

String url="http://localhost:8984/axis/HelloWs.jws";//服务地址
Service s = new Service();
Call call = s.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName(new QName(url, "getH"));//调用的服务端方法名称
Object invoke = call.invoke(new Object[]{"a"});//传递的参数
System.out.println(invoke);

posted @ 2017-07-05 17:54 杨军威 阅读(193) | 评论 (0)编辑 收藏

webservice添加SOAPHandler的步骤

1、创建自己的handler类实现SOAPHandler接口,实现里面的方法。
2、新增handler-chain.xml文件,
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<javaee:handler-chains 
     xmlns:javaee="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <javaee:handler-chain>
    <javaee:handler>
      <javaee:handler-class>com.ws.MsgHandler</javaee:handler-class>
    </javaee:handler>
  </javaee:handler-chain>
</javaee:handler-chains>
3、在webservice实现类中添加文件的地址 @HandlerChain(file="handler-chain.xml")
4、

posted @ 2017-07-04 09:38 杨军威 阅读(827) | 评论 (0)编辑 收藏

根据wsdl生成Java客户端程序的命令

wsimport -d [目录] -keep -verbose [wsdl地址]

posted @ 2017-06-30 14:27 杨军威 阅读(171) | 评论 (0)编辑 收藏

sessionid在客户端和服务端保存的原理

session是在服务端开辟的一块内存,有唯一的sessionid,如果客户端没有禁用cookie,sessionid就保存在客户端的cookie中;如果客户端禁用了cookie,客户端的url后面就跟上;jsessionid=111。来想服务器传递sessionid,可以保证sessionid不变。

posted @ 2017-06-13 14:33 杨军威 阅读(200) | 评论 (0)编辑 收藏

仅列出标题
共43页: First 上一页 8 9 10 11 12 13 14 15 16 下一页 Last 

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜