使用简单的Java类连接(登录)到Alfresco
我尝试登录到我的alfresco,它部署在:localhost:80/alfresco 这就是我到目前为止所做的:使用简单的Java类连接(登录)到Alfresco,java,eclipse,tomcat,alfresco,Java,Eclipse,Tomcat,Alfresco,我尝试登录到我的alfresco,它部署在:localhost:80/alfresco 这就是我到目前为止所做的: public static void main(String[] args) throws Exception { WebServiceFactory.setEndpointAddress("http://localhost:80/alfresco/api/"); // Start the session AuthenticationUtils.sta
public static void main(String[] args) throws Exception {
WebServiceFactory.setEndpointAddress("http://localhost:80/alfresco/api/");
// Start the session
AuthenticationUtils.startSession(USERNAME, PASSWORD);
try {
//Work to do if the login works :S
} finally {
// End the session
AuthenticationUtils.endSession();
}
}
这是我在上课时得到的:
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Exception in thread "main" org.alfresco.webservice.util.WebServiceException: Error starting session.
at org.alfresco.webservice.util.AuthenticationUtils.startSession(AuthenticationUtils.java:94)
at com.delta.logic.connect.Query1.main(Query1.java:53)
Caused by: (404)Introuvable
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.alfresco.webservice.authentication.AuthenticationServiceSoapBindingStub.startSession(AuthenticationServiceSoapBindingStub.java:187)
at org.alfresco.webservice.util.AuthenticationUtils.startSession(AuthenticationUtils.java:79)
... 1 more
我真的被困在这里了,救命 来自
还请注意,soap web服务的端点已移动了
露天4.2.d。为公共api让路
现在不再是http://localhost:8080/alfresco/api
肥皂
服务驻留在http://localhost:8080/alfresco/soapapi
从
还请注意,soap web服务的端点已移动了
露天4.2.d。为公共api让路
现在不再是http://localhost:8080/alfresco/api
肥皂
服务驻留在http://localhost:8080/alfresco/soapapi
从
还请注意,soap web服务的端点已移动了
露天4.2.d。为公共api让路
现在不再是http://localhost:8080/alfresco/api
肥皂
服务驻留在http://localhost:8080/alfresco/soapapi
从
还请注意,soap web服务的端点已移动了
露天4.2.d。为公共api让路
现在不再是http://localhost:8080/alfresco/api
肥皂
服务驻留在http://localhost:8080/alfresco/soapapi
我找到了更好的方法。如果您转到/alfresco/service/index,您将看到alfresco向其用户提供的所有Web服务 我所做的很简单。我获得了登录webservice的URL,并使用如下方式:
public static String getAlfTicket(String _userName, String _password) {
String _ticket;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);
String JsonRequest = "{ \"username\": \"" + _userName + "\", \"password\": \"" + _password + "\" }";
HttpEntity<String> requestEntity = new HttpEntity<String>(JsonRequest, headers);
person entity = restTemplate.postForObject("http://yourhost:port/alfresco/service/api/login", requestEntity,
person.class);
// String path = entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket = entity.getData().getTicket();
return _ticket;
}
公共静态字符串getAlfTicket(字符串\u用户名,字符串\u密码){
串票;
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
列表>();
添加(新表单HttpMessageConverter());
添加(新的StringHttpMessageConverter());
添加(新映射JacksonHttpMessageConverter());
RestTemplate RestTemplate=新RestTemplate();
restemplate.setMessageConverters(messageConverters);
字符串JsonRequest=“{\'username\':\”+\'u username+“\”,\“password\”:\“+\'u password+“\”}”;
HttpEntity requestEntity=新的HttpEntity(JsonRequest,标头);
person实体=restTemplate.postForObject(“http://yourhost:port/alfresco/service/api/login“,请求实体,
个人、班级);
//字符串路径=entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket=entity.getData().getTicket();
回程票;
}
您可以注意到我使用了Spring框架中的restTemplate,但是您可以自由地使用任何您想要得到响应的内容。此功能的结果是一张票证,以后可用于其他目的
希望有帮助 我找到了更好的方法。如果您转到/alfresco/service/index,您将看到alfresco向其用户提供的所有Web服务 我所做的很简单。我获得了登录webservice的URL,并使用如下方式:
public static String getAlfTicket(String _userName, String _password) {
String _ticket;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);
String JsonRequest = "{ \"username\": \"" + _userName + "\", \"password\": \"" + _password + "\" }";
HttpEntity<String> requestEntity = new HttpEntity<String>(JsonRequest, headers);
person entity = restTemplate.postForObject("http://yourhost:port/alfresco/service/api/login", requestEntity,
person.class);
// String path = entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket = entity.getData().getTicket();
return _ticket;
}
公共静态字符串getAlfTicket(字符串\u用户名,字符串\u密码){
串票;
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
列表>();
添加(新表单HttpMessageConverter());
添加(新的StringHttpMessageConverter());
添加(新映射JacksonHttpMessageConverter());
RestTemplate RestTemplate=新RestTemplate();
restemplate.setMessageConverters(messageConverters);
字符串JsonRequest=“{\'username\':\”+\'u username+“\”,\“password\”:\“+\'u password+“\”}”;
HttpEntity requestEntity=新的HttpEntity(JsonRequest,标头);
person实体=restTemplate.postForObject(“http://yourhost:port/alfresco/service/api/login“,请求实体,
个人、班级);
//字符串路径=entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket=entity.getData().getTicket();
回程票;
}
您可以注意到我使用了Spring框架中的restTemplate,但是您可以自由地使用任何您想要得到响应的内容。此功能的结果是一张票证,以后可用于其他目的
希望有帮助 我找到了更好的方法。如果您转到/alfresco/service/index,您将看到alfresco向其用户提供的所有Web服务 我所做的很简单。我获得了登录webservice的URL,并使用如下方式:
public static String getAlfTicket(String _userName, String _password) {
String _ticket;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);
String JsonRequest = "{ \"username\": \"" + _userName + "\", \"password\": \"" + _password + "\" }";
HttpEntity<String> requestEntity = new HttpEntity<String>(JsonRequest, headers);
person entity = restTemplate.postForObject("http://yourhost:port/alfresco/service/api/login", requestEntity,
person.class);
// String path = entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket = entity.getData().getTicket();
return _ticket;
}
公共静态字符串getAlfTicket(字符串\u用户名,字符串\u密码){
串票;
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
列表>();
添加(新表单HttpMessageConverter());
添加(新的StringHttpMessageConverter());
添加(新映射JacksonHttpMessageConverter());
RestTemplate RestTemplate=新RestTemplate();
restemplate.setMessageConverters(messageConverters);
字符串JsonRequest=“{\'username\':\”+\'u username+“\”,\“password\”:\“+\'u password+“\”}”;
HttpEntity requestEntity=新的HttpEntity(JsonRequest,标头);
person实体=restTemplate.postForObject(“http://yourhost:port/alfresco/service/api/login“,请求实体,
个人、班级);
//字符串路径=entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket=entity.getData().getTicket();
回程票;
}
您可以注意到我使用了Spring框架中的restTemplate,但是您可以自由地使用任何您想要得到响应的内容。此功能的结果是一张票证,以后可用于其他目的
希望有帮助 我找到了更好的方法。如果你去/露天/服务/索引y