<ns2:processByJavaAdapterResponse xmlns:ns2="http://wsi.reg.sitronics.com/">
</ns2:processByJavaAdapterResponse>
<return><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<error>
<faultcode>Нет связи с сервером</faultcode>
<fault></fault>
</error>]]></return>
А вот не всегда.
Иногда ответ приходит таким:
<ns2:processByJavaAdapterResponse xmlns:ns2="http://wsi.reg.sitronics.com/"> <return><?xml version="1.0" encoding="UTF-8"?> <faultcode>Нет связи с сервером</faultcode></return> </ns2:processByJavaAdapterResponse>
И это не баг, а фича :-)
Иногда веб-сервису кажется что такой способ обертки XML более лучший.
Вот уже долгое время в качестве клиента для веб-сервисов использую самый простой Axis, и этого вполне хватало, однако столкнулся с проблемой что JAX-WS веб-сервис, возвращающий массив своих объектов перестал правильно "распознаваться" axis'овским клиентом.
AxisFault!
Все таки, для JAX-WS сервиса требуется и jAX-WS клиент!
В качестве wsdl location можно прямо указать url, но в моем случае была переброска портов и адрес endpoint'а отличался от прописанного в wsdl, поэтому я скачивал wsdl заранее:
По той же причине я сперва скачиваю wsdl, а уже потом запускаю wsimport.
Для com.sun.tools.ws.ant.WsImport потребуется jax-ws фреймворк (jaxws-tools.jar), я взял его с https://jax-ws.java.net
Вот и все!
String url = "http://sea:9084/SeaIntService/SeaIntService";
URL wsdlLocation = new URL(url.concat("/SeaIntService.wsdl"));
QName qname = new QName("http://ws.sitronics.com/", "SeaIntService");
SeaIntService service = new SeaIntService(wsdlLocation, qname);
SeaInt seaInt = service.getSeaIntPort();
// Use the BindingProvider's context to set the endpoint
BindingProvider bp = (BindingProvider) seaInt;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
List<PdfDocument> pdfs = seaInt.getPdfDocuments("{D3ED8387-1A95-4032-9B20-0216ADA310EE}");
Одно время я держал несколько установок Eclipse для различных профилей, в одном разрабатывал консольные и GUI приложения, в другом - веб-сервисы и веб-приложения. J2EE и J2SE инсталляции. Затем, подумал, а зачем там неправильно? Не логичнее ли держать одну полную "установку", которая бы работала с различными профилями?
Запустить Eclipse на определенном workspace довольно просто: eclipse.exe -data C:\workspace.junoSR2
Кроме того, можно для каждого workspace запускать определенный продукт:
eclipse.exe -data c:\workspace.junoSR2.j2se -product -product org.eclipse.epp.package.rcp.product
eclipse.exe -data C:\workspace.junoSR2 -product org.eclipse.epp.package.jee.product
Кстати, в этом случае на панели задач буду разные иконки приложений.
Вот тут статья, как сделать свой "продукт".
Способ взаимодействия с Microsoft Office, описанный мною в http://mortihead.blogspot.ru/2013/06/java-microsoft-office.html был использован для преобразования документов в PDF на лету.
Однако, практическое применение выявило ряд проблем.
Использование мостика Java: Jacob -> MS Office оказалось нестабильным.
Поэтому, я нашел альтернативный способ преобразования: используя OpenOffice.
File inputFile = new File("document.doc");
File outputFile = new File("document.pdf");
// connect to an OpenOffice.org instance running on port 8100
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
connection.connect();
// convert
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);
// close the connection
connection.disconnect();
Конвертер определяет вид конвертации по расширению файла.
По первым впечатлениям - все немного быстрее, чем через Microsoft Office.
P.S. Понятно, что при этом способе потребуется запускать OpenOffice as service. Нашел несколько статей как это сделать, приведу здесь работающий способ:
1) Install OpenOffice with a complete installation to the default paths.
2) sc create "openofficeserver" binPath= "\"C:\Program Files
(x86)\OpenOffice.org 3\program\soffice.exe\" -headless
-accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard"
DisplayName= "OpenOffice 3.4.1 Server" start= auto [SC] CreateService SUCCESS
3) Copy srvany.exe from the Windows Server 2003 Resource Kit to a path on the Windows Server 2008 R2 server.
Open RegEdit Navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\openofficeserver Copy the value of the ImagePath to the clipboard. Alter the value of ImagePath to "c:\somepathto\srvany.exe" Add a new Key named "Parameters", this is essentially a folder. Add a new String Value named "Application" and set the value to the clipboard contents copied from the ImagePath.
You should now be able to start the service.
Check that the service is running: netstat -nao|findstr -c":8100"
Манипуляции с srvany.exe требуются по причине, что исполняемый файл soffice.exe - не является полноценным сервисом Windows, и не может обрабатывать команды сервиса Stop, Start и т.д., поэтому требуется прослойка, которая будет этим заниматься.
Так же, возможно использование других, альтернативных RunAsService программ.
Update от 26.12.2013:
Данный способ работает только с версиями OpenOffice 3.X.
С новой, 4.0.1 версией - не заработало.
Проект JOD 2 закрыт, новый проект тут: http://code.google.com/p/jodconverter/
Но SocketOpenOfficeConnection is not supported by
JODConverter 3
Источник: тут
Как изменить настройки JVM, если WAS не запускается или не удается войти в консоль администрирования (Servers -> Application servers -> server1 ->
Java and Process Management -> Process Definition ->
Java Virtual Machine.)?
By changing the server.xml file directly
Open the server.xml file located in the following directory
Настройки локали
С удивлением обнаружил логи веб-сферы на русском. Дело хорошее, но искать русские сообщения об ошибках WebSphere дело неблагодарное, поэтому вот:
На самом деле всё просто, требуется добавить репозиторий WTP и установить J2EE компоненты. В мануалах не совсем точное указание адреса, для последней версии 4 Eclipse Juno: http://download.eclipse.org/webtools/repository/juno/
2) PDF Addin http://www.microsoft.com/en-us/download/details.aspx?id=7
3) lifehack
Http://blog.csdn.net/zcmssd/article/details/7443502 Windows 2008 Server x64 Please make this folder. C:\Windows\SysWOW64\config\systemprofile\Desktop ? 2008 Server x86 Windows Please make this folder. C:\Windows\System32\config\systemprofile\Desktop
Интересно, но во многих местах указаны неверные примеры работы с диалоговыми окнами SWT!
То модальность начинает странно вести себя, то модальное окно образует свою иконку на TaskBar!
/**
*
*/
package com.sitronics.swt;
/**
* @author NBochkarev
*
*/
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.*;
public class SWTDialog extends Dialog
{
Object result;
Shell shell;
private Composite composite_1;
private Label label;
public SWTDialog(Shell parent, int style)
{
super(parent, style);
}
public SWTDialog(Shell parent)
{
this(parent, 0);
}
protected void createContents()
{
shell.setSize(812, 590);
shell.setText("Caption");
shell.setLayout(new FormLayout());
composite_1 = new Composite(shell, SWT.NONE);
FormData fd_composite_1 = new FormData();
fd_composite_1.bottom = new FormAttachment(0, 52);
fd_composite_1.left = new FormAttachment(0);
fd_composite_1.right = new FormAttachment(100);
fd_composite_1.top = new FormAttachment(0);
composite_1.setLayoutData(fd_composite_1);
label = new Label(composite_1, SWT.NONE);
label.setBounds(73, 10, 427, 38);
label.setText("Hello world!");
}
public Object open()
{
Shell parent = getParent();
shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.MAX | SWT.MIN);
// Your code goes here (widget creation, set result, etc).
createContents();
shell.open();
Display display = parent.getDisplay();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
return result;
}
}
Много лет пользовался читалкой штрихкодов от DTK: http://www.dtksoft.com/?p=barreader
Я ее даже в java использовал (правда костылями через обертку вызова dll):
Офигеть. Чистый Windows Server 2008 R2
Ставлю SQL Server 2008 R2. Инсталяшка запускается и пропадает.
Оказывается вот оно что:
SQL 2008/2008 R2/2012 setup disappears/fails when installing Setup Support files
SQL Server 2008 R2 1. Save the following in a .reg file and merge to populate the registry: Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Bootstrap] "BootstrapDir"="C:\\Program Files\\Microsoft SQL Server\\100\\Setup Bootstrap\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Bootstrap\Setup] "PatchLevel"="10.50.1600.00"
2. Next, copy the following files and folders from the media to the specified destinations:
File/Folder in media
Destination
X64/X86 folder (depending on what architecture you want to install)