Существенные различия между J2EE и C#/.Net при разработке веб-сервисов

Создайте DIV, разработанный со следующими стилями. В Вашем JavaScript, устанавливает размер шрифта и атрибуты, что Вы пытаетесь измерить, поместить Вашу строку в DIV, затем считать текущую ширину и высоту DIV. Это будет простираться для установки содержанию, и размер будет в нескольких пикселях представленного размера строки.

var fontSize = 12;
var test = document.getElementById("Test");
test.style.fontSize = fontSize;
var height = (test.clientHeight + 1) + "px";
var width = (test.clientWidth + 1) + "px"

console.log(height, width);
#Test
{
    position: absolute;
    visibility: hidden;
    height: auto;
    width: auto;
    white-space: nowrap; /* Thanks to Herb Caudill comment */
}
<div id="Test">
    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
</div>
9
задан Jeff Dalley 9 July 2009 в 08:45
поделиться

3 ответа

Хотя существует только один способ создания веб-служб в .NET с использованием технологии Microsoft, веб-службы Java очень фрагментированы. См., Например, этот вопрос. Большинство фреймворков могут выполнять веб-службы как с контрактом (запуск из файла WSDL), так и с кодом (запуск из исходного кода). У каждой платформы также есть свой способ размещения веб-службы. Платформа Axis2, например, развертывает веб-службы в виде файлов AAR внутри веб-приложения Axis2. Другие фреймворки развертывают веб-службы внутри файла WAR (Axis2 также может это делать).

Для людей, переходящих с .NET на Java, всегда сложно выбрать структуру веб-служб. Интеграция IDE также не так хороша, как с Visual Studio.

Если вы новичок в J2EE, я рекомендую взглянуть на среду Spring. Spring имеет подпроект (Spring-WS), который позволяет создавать веб-службы, ориентированные на контракт. Интеграция с базой данных и логикой приложения намного проще с помощью инфраструктуры внедрения зависимостей, такой как Spring. Apache CXF также прекрасно интегрируется со Spring.

9
ответ дан 4 December 2019 в 13:04
поделиться

Я никогда раньше не пробовал использовать веб-службы, но недавно. И меня поразило, насколько это просто в Java с JAX-WS.

Вот веб-сервис

@WebService
class BusinessProcess implements IBusinessProcess
{
   public HelloWorldObject helloWorld()
   {
      return new HelloWorldObject("Earth");
   }
}

И все.
Если вам нужна дополнительная логика и уровень, такие как DB Entities, это добавляется так просто, как я мог только представить, с EJB3.

Насколько я только что видел способ определения WebService в C #, большой разницы нет вообще.

    [WebService(... )]
    public class BusinessProcess : System.Web.Services.WebService
    {
        [WebMethod]
        public HelloWorldObject helloWorld()
        {
            return new HelloWorldObject("Earth");
        }
    }

] Я считаю, что есть разница в дальнейшей логике.

4
ответ дан 4 December 2019 в 13:04
поделиться

Я бы посоветовал попробовать фреймворк Apache CXF . Я выбрал его для крупного проекта здесь, на работе, и он отлично работает! Какие преимущества это дает вам перед EJB3? Хммм ... Я не могу сказать, кроме того, что я использовал CXF, в то время как EJB3 никогда не был у меня на кухне (неясная ссылка на приветствие).

С CXF код не намного больше, чем пара аннотаций здесь и там . Он использует стандартные аннотации JAXB для маршалинга объектов. Через конфигурацию также можно разместить перехватчики до и после вызовов веб-служб, если вы хотите вести журнал и т. Д.

@WebService
public interface UserService {
    public Collection<User> getUsers(@WebParam(name = "systemID") Long sysID);
}

Обратите внимание, что аннотация @WebParam не является обязательной, но она выглядит лучше в WSDL чем такие вещи, как arg0 . Да, вместе с этим может потребоваться небольшая конфигурация XML:

<!-- the #userService is a reference to a Spring bean defined elsewhere --> 
<jaxws:endpoint id="userWS" implementor="#userService"
    implementorClass="com.blah.blah.blah.UserServiceImpl"
    address="/UserService" />

Что касается использования веб-сервисов ... Чтение Руководства пользователя CXF даст вам представление о том, как это делается: http://cwiki.apache.org/CXF20DOC/developing-a-consumer.html

3
ответ дан 4 December 2019 в 13:04
поделиться