使用jersey(2.5.1)编写Java REST客户端

写的过程经常出一些默名的异常:

java.lang.NoSuchFieldError: EXCLUDE_EMPTY
	at org.glassfish.jersey.client.ClientConfig$State.<init>(ClientConfig.java:150)
	at org.glassfish.jersey.client.ClientConfig.<init>(ClientConfig.java:468)
	at org.glassfish.jersey.client.JerseyClientBuilder.<init>(JerseyClientBuilder.java:94)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
	at java.lang.Class.newInstance(Class.java:383)
	at javax.ws.rs.client.FactoryFinder.newInstance(FactoryFinder.java:118)
	at javax.ws.rs.client.FactoryFinder.find(FactoryFinder.java:225)
	at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:86)
	at javax.ws.rs.client.ClientBuilder.newClient(ClientBuilder.java:114)

引出异常的代码:

	public User getUser(String usermail, String userpswd) {
		// TODO Auto-generated method stub
		
		Client client=ClientBuilder.newClient();
		WebTarget target = client.target(actionBaseUri);
		
		Form form = new Form();
		form.param("mail", usermail);
		form.param("password", userpswd);
		
		User u=target
			.path("/user/login")
			.request(MediaType.APPLICATION_XML_TYPE)
			.post(
					Entity.entity(form,MediaType.APPLICATION_FORM_URLENCODED_TYPE),
					User.class);
		return u;
	}

主要原因是因为jar包不全或者冲突,我整理了一下,打成7z包传到我的资源中免大家再进同样的坑. Jersey client开发需要的jar, 开发环境需要java7+

你可能感兴趣的:(java,REST,jersey)